ホームページ >バックエンド開発 >PHPチュートリアル >PHPバイナリツリー構築アルゴリズムのサンプルコード
この記事では、主に PHP でのバイナリ ツリー構築アルゴリズムの例を紹介します。編集者がそれを参考にさせていただきます。エディターに従って、データ構造においてツリーが非常に重要であることを見てみましょう。ここでは、バイナリ ツリーが括弧表記で表されています。最初にバイナリ ツリー ノード クラスを作成します:
// 二叉树节点 class BTNode { public $data; public $lchild = NULL; public $rchild = NULL; public function construct($data) { $this->data = $data; } }
次にバイナリ ツリーを構築します:
function CreateBTNode(&$root,string $str) { $strArr = str_split($str); $stack = []; $p = NULL; // 指针 $top = -1; $k = $j = 0; $root = NULL; foreach ($strArr as $ch) { switch ($ch) { case '(': $top++; array_push($stack, $p); $k = 1; break; case ')': array_pop($stack); break; case ',': $k = 2; break; default: $p = new BTNode($ch); if($root == NULL) { $root = $p; } else { switch ($k) { case 1: end($stack)->lchild = $p; break; case 2: end($stack)->rchild = $p; break; } } break; } } }
ここでバイナリ ツリーを出力する関数を作成します (順序トラバーサル):
function PrintBTNode($node) { if($node != NULL) { PrintBTNode($node->lchild); echo $node->data; PrintBTNode($node->rchild); } }
実行結果:
を入力します「A(B(C,D),G(F))」
以上がPHPバイナリツリー構築アルゴリズムのサンプルコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。