Heim > Artikel > Backend-Entwicklung > PHP erklärt, wie man Binärbäume in Zickzack-Reihenfolge druckt
In diesem Artikel wird hauptsächlich die Methode von PHP zum Drucken von Binärbäumen in Zick-Zack-Reihenfolge vorgestellt, wobei die zugehörigen Betriebsfähigkeiten von PHP in Kombination mit der Stapeldurchquerung von Binärbäumen berücksichtigt werden
Das Beispiel In diesem Artikel geht es um die PHP-Implementierung des Druckens von Binärbäumen in Zickzackreihenfolge. Eine Methode zum Drucken eines Binärbaums in Zickzackreihenfolge. Teilen Sie es wie folgt als Referenz mit allen:
Frage
Bitte implementieren Sie eine Funktion, um den Binärbaum in einem Zickzackmuster zu drucken. Das heißt, die erste Zeile lautet wie folgt: Drucken Sie von links nach rechts, die zweite Ebene druckt von rechts nach links, die dritte Zeile druckt von links nach rechts und so weiter für die anderen Zeilen.
Lösung
Zwei Stapel verwenden
Implementierungscode
<?php /*class TreeNode{ var $val; var $left = NULL; var $right = NULL; function __construct($val){ $this->val = $val; } }*/ function MyPrint($pRoot) { if($pRoot == NULL) return []; $current = 0; $next = 1; $stack[0] = array(); $stack[1] = array(); $resultQueue = array(); array_push($stack[0], $pRoot); $i = 0; $result = array(); $result[0]= array(); while(!empty($stack[0]) || !empty($stack[1])){ $node = array_pop($stack[$current]); array_push($result[$i], $node->val); //var_dump($resultQueue);echo "</br>"; if($current == 0){ if($node->left != NULL) array_push($stack[$next], $node->left); if($node->right != NULL) array_push($stack[$next], $node->right); }else{ if($node->right != NULL) array_push($stack[$next], $node->right); if($node->left != NULL) array_push($stack[$next], $node->left); } if(empty($stack[$current])){ $current = 1-$current; $next = 1-$next; if(!empty($stack[0]) || !empty($stack[1])){ $i++; $result[$i] = array(); } } } return $result; }
Erklärung, wie man mit PHP ein Binärbaumbild erhält
Erklärung, wie man mit PHP den K-ten Knoten vom letzten in einer verknüpften Liste erhält
Wie man druckt ein Binärbaum von oben nach unten in PHP Explain
Das obige ist der detaillierte Inhalt vonPHP erklärt, wie man Binärbäume in Zickzack-Reihenfolge druckt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!