Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Methode zum Drucken von Binärbäumen in Zickzack-Reihenfolge

PHP-Methode zum Drucken von Binärbäumen in Zickzack-Reihenfolge

jacklove
Freigeben: 2023-03-27 14:28:02
Original
1434 Leute haben es durchsucht

In diesem Artikel wird erklärt, wie man Binärbäume in Zickzack-Reihenfolge in PHP druckt.

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 links nach rechts gedruckt, die zweite Ebene wird in der Reihenfolge von gedruckt von rechts nach links, und die dritte Ebene wird in der Reihenfolge von rechts nach links gedruckt. Die Zeilen werden von links nach rechts gedruckt, und so weiter für die anderen Zeilen.

Lösungsidee

Verwenden Sie zwei Stapel

Implementierungscode

/*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 "
"; 
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;
 
}
Nach dem Login kopieren

Dieser Artikel erklärt, wie PHP Binärbäume in Zick-Zack-Reihenfolge druckt. Weitere Informationen zu relevanten Kenntnissen finden Sie hier Achten Sie auf die chinesische PHP-Website.

Verwandte Empfehlungen:

PHP-Nginx-Echtzeitausgabe-Implementierungsmethode

PHP-Implementierung, um den Einstiegsknoten des zu finden Ring in der verknüpften Liste

PHP-Klasse SoapClient nicht gefundene Verarbeitungsmethode

Das obige ist der detaillierte Inhalt vonPHP-Methode zum Drucken von Binärbäumen in Zickzack-Reihenfolge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage