Heim > Artikel > Backend-Entwicklung > Detaillierte Erläuterung der Schritte zum Drucken eines Binärbaums mit Zickzack-Reihenfolge in PHP
Dieses Mal erkläre ich Ihnen ausführlich die Schritte zum Drucken eines Binärbaums in Z-Form mit PHP. Was sind die Vorsichtsmaßnahmen für die Verwendung von PHP zum Drucken eines Binärbaums in Z-Form? Hier ist ein praktischer Fall, werfen wir einen Blick darauf.
Frage
Bitte implementieren Sie eine Funktion, um den Binärbaum in einem Zickzackmuster zu drucken, d. h. die erste Zeile wird in der Reihenfolge von gedruckt von links nach rechts, und die zweite Zeile wird in der Reihenfolge von links nach rechts gedruckt. Die Ebenen werden von rechts nach links gedruckt, die dritte Zeile wird von links nach rechts gedruckt 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; }
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!
Empfohlene Lektüre:
Warum es eine PHP-Klasse gibt SoapClient hat das Problem nicht gefunden und seine Lösungsmethode
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Schritte zum Drucken eines Binärbaums mit Zickzack-Reihenfolge in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!