2016-05-13 13 views
-4

Ich schrieb einen Baum, in dem jeder Knoten eine Liste seiner Kinder hat. Meine Fragen sind also: Wie kann ich die Anzahl der Ebenen meines Baumes berechnen? Kann mir jemand etwas darüber berichten? Vielen Dank :).Baum Nummer der Ebenen

+2

Was haben Sie versucht? Hast du etwas Code? – Pierre

+0

Bitte geben Sie zuerst Ihren Code ein. – fluter

+2

Mit Computer die Anzahl der Ebenen meinst du die Tiefe aller Ebenen, die durchschnittliche Tiefe, welche Tiefe du bist beim Durchschleifen oder die Tiefe pro Kind? Sie müssen konkreter sein – Bauss

Antwort

0

Es könnte verschiedene Wege geben, dieses Problem zu lösen. Eine Lösung könnte sein, die Knoten, die eine Zählervariable verwenden, zu zählen und den Zähler zu inkrementieren, bis der Blattknoten erreicht ist. Aber Sie haben zu kümmern

1. Longest Chain 
2. Redundancy in couting 

Zweitens, wenn jeder Knoten eine Liste von Kindern hat dann die Knoten durch diese Liste in Wurzelknoten vorhanden zählen.

wäre ein sehr geeigneter Weg

typedef struct node { 
... 
Other members 
... 
int node_level; 
} NODE; 

und initialisiert es mit 1, wenn Wurzel oder irgendein anderer Knoten erstellt wird eine Variable mit Namen Stufe in die struct Knoten zu definieren sein. Aktualisieren Sie dann den Wert für jede Einfügung in den Baum.

Auf diese Weise können Sie die Ebene eines untergeordneten Baums sehen, wann immer Sie suchen müssen. Beachten Sie auch, dass jeder eingefügte Knoten eine Ebene 1 und seine Vorfahren eine höhere Ebene haben.