ホームページ  >  記事  >  バックエンド開発  >  PHPでバイナリツリーを作成する方法(コード例)

PHPでバイナリツリーを作成する方法(コード例)

不言
不言転載
2018-11-17 17:31:513111ブラウズ

この記事の内容は、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 サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。