この記事の内容は、PHP でバイナリ ツリーを作成する方法 (コード例) に関するものであり、一定の参考価値があります。必要な友人が参照することができます。
1. 再帰の原理を使用しますが、ノードが最初に出力された場所では、ノードを生成し、ノードに値を割り当てるという操作に変更される点が異なります。
if(ch= ='#' ){*T=NULL;}else{malloc();(*T)->data=ch;createFunc((*T)->lchild);createFunc((*T)-> rchild);}
2. 事前順序トラバーサル: 最初にルート ノードにアクセスし、事前順序で左のサブツリーをトラバースし、事前順序で右のサブツリーをトラバースします。中央と左
3. バイナリ ツリーに各ノードの値を配置しますヌル ポインタは、値が特定の値である仮想ノードにつながります#. 処理されるバイナリ ツリーは、元のバイナリ ツリーの拡張バイナリ ツリーです。 tree は、バイナリ ツリーを決定するための走査シーケンスを実行します。
<?php class BinTree{ public $data; public $left; public $right; } //前序遍历生成二叉树 function createBinTree(){ $handle=fopen("php://stdin","r"); $e=trim(fgets($handle)); if($e=="#"){ $binTree=null; }else{ $binTree=new BinTree(); $binTree->data=$e; $binTree->left=createBinTree(); $binTree->right=createBinTree(); } return $binTree; } $tree=createBinTree(); var_dump($tree); # object(BinTree)#1 (3) { ["data"]=> string(1) "A" ["left"]=> object(BinTree)#2 (3) { ["data"]=> string(1) "B" ["left"]=> NULL ["right"]=> object(BinTree)#3 (3) { ["data"]=> string(1) "D" ["left"]=> NULL ["right"]=> NULL } } ["right"]=> object(BinTree)#4 (3) { ["data"]=> string(1) "C" ["left"]=> NULL ["right"]=> NULL } }
以上がPHPでバイナリツリーを作成する方法(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。