Ich habe ein bisschen Probleme damit, mir Gedanken darüber zu machen, was ein binärer Suchbaum ist und warum es wichtig ist, einen Rang zu haben. Ich hoffe, dass jemand ein paar Dinge für mich klären kann.
Was ich untersucht habe:
Nach dem, was ich gelesen habe, ist ein binärer Suchbaum ein Baum, an den jedem Knoten eine Variable "Rang" zugeordnet ist.
In der Frage hier gibt jemand an, dass Sie Folgendes tun können, um den Rang eines Knotens in einem binären Suchbaum zu bestimmen:
Beginnen Sie den Rang bei Null. Summieren Sie die Größe aller linken Teilbäume, an denen die Suche überspringt, während die binäre Suche von der Wurzel aus fortgesetzt wird. Schließen Sie auch die Knoten entlang des Pfads ein, die kleiner als das gesuchte Element sind. Dies sind nur die Eltern der richtigen Kinder auf dem Suchpfad.
Fragen:
Der Rang scheint nur eine Zahl zu sein, die angibt, wie viele Knoten (plus einer für die Wurzel) benötigt werden, um zu einem bestimmten Knoten in einem Baum zu gelangen. Ist das richtig? Es schien mir nicht richtig zu sein, nur weil das so aussieht, als würde der Rang eines Knotens der Tiefe eines Knotens entsprechen.
Was ist der Unterschied zwischen "Gewicht" und "Rang"? Wenn einem Knoten in einem bestimmten binären Suchbaum eine Gewichtung zugeordnet ist, ist dies nur ein zufälliger Wert, der ihm vom Benutzer / Entwickler zugewiesen wurde?
Was bringt es schließlich, einen Rang zu haben? Mein erster Gedanke ist, dass damit Prioritäten angegeben werden können. Warum sollte der Entwickler in diesem Fall jedoch nicht einfach Gewichte verwenden?
Andere Dinge:
Ich habe mir auch die Seite hier angesehen . Es erklärt, wie man den Rang berechnet, aber ich bin immer noch nicht davon überzeugt, dass ich das Konzept noch verstehe.
Vielen Dank für jede Hilfe.
quelle