Heim  >  Artikel  >  Backend-Entwicklung  >  Wie führt man eine geordnete Durchquerung eines Binärbaums in C-Sprache durch?

Wie führt man eine geordnete Durchquerung eines Binärbaums in C-Sprache durch?

coldplay.xixi
coldplay.xixiOriginal
2020-07-15 11:26:033753Durchsuche

Die Methode zum Durchlaufen eines Binärbaums in der C-Sprache: Durchlaufen Sie zuerst den linken Teilbaum und fahren Sie mit der Rekursion fort, bis Sie schließlich den Wurzelknoten durchqueren rechter Teilbaum, und besuchen Sie ihn weiterhin mithilfe der Rekursion. Gehen Sie einfach zum Knoten ganz rechts.

Wie führt man eine geordnete Durchquerung eines Binärbaums in C-Sprache durch?

Die Methode zum Durchlaufen eines Binärbaums in der Reihenfolge in der Sprache C:

Die Regel der In- Die Reihenfolge der Durchquerung lautet: linker Teilbaum ---> Wurzelknoten---> Daher muss sich die Reihenfolge, in der wir Knoten besuchen, ändern.

  • Wir warten, bis die Rekursion ein Hin- und Her-Prozess ist, für einen Knoten, der genau zwei untergeordnete Knoten hat (keine untergeordneten Knoten). Sie müssen nur einmal den linken Knoten, die Wurzel und dann den rechten Knoten besuchen. Das ist es.

  • Und wenn es auf beiden Seiten Knoten gibt. Jeder Knoten muss die Regeln der In-Order-Traversierung erfüllen. Wir besuchen zuerst den linken Knoten von der Wurzel aus. Wenn es den linken Knoten erreicht, wird der linke Knoten wieder zu einem Teilbaum, der auch die Anforderungen des Durchlaufens in der richtigen Reihenfolge erfüllen muss. Wir müssen also zuerst auf den linken Knoten des linken Knotens zugreifen (falls vorhanden). Wenn Sie also so denken, verstehen Sie die Regeln. Aber es ist zu kompliziert. Dann verwenden wir Rekursion. Weil seine Unterprobleme mit den Problemen des Wurzelknotens identisch sind, der Umfang jedoch verringert ist. Deshalb verwenden wir rekursives Denken, um es zu lösen.

  • Dann lautet die rekursive Logik: Berücksichtigung besonderer Umstände (direkter Zugriff, falls speziell), nicht rekursiv, andernfalls rekursiv auf den linken Teilbaum zugreifen (den linken Teilbaum dieselbe Funktion ausführen lassen, Rekursion stoppen). wenn speziell) Ausgabe, suchen Sie weiter, bis der Knoten ganz links nicht mehr speziell ist)——>Knoten ausgeben——>Rekursiv auf den rechten Teilbaum zugreifen.

public void zhongxu(node t)// 中序遍历 中序遍历:左子树---> 根结点 ---> 右子树
{
if (t != null) {
zhongxu(t.left);
System.out.print(t.value + " ");// 访问完左节点访问当前节点
zhongxu(t.right);
}
}

Verwandtes Lernen Empfohlen : C-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWie führt man eine geordnete Durchquerung eines Binärbaums in C-Sprache durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn