ホームページ >バックエンド開発 >PHPチュートリアル >PHPにおける完全バイナリツリーの定義方法を詳しく解説
この記事では主に、PHP における完全バイナリ ツリーの定義と実装方法を紹介します。完全バイナリ ツリーの概念を簡単に説明し、完全バイナリ ツリーの定義、ノード検索、追加、設定、印刷およびその他の関連する操作スキルを説明します。必要な方は参考にしてください
この記事では、PHP での完全なバイナリ ツリーの定義と実装方法を例を用いて説明します。参考のために皆さんと共有してください。詳細は次のとおりです。
二分木の深さが h の場合、h 番目の層を除いて、各層のノード数 (1~h-1) は最大数、および h 番目の層のすべてのノード。ノードはすべて連続して左側に集中しており、完全な二分木になります。
PHP コードの実装 (ノードの追加、ノードの階層的な移動、後続の更新のためのノードの削除の一時的な実装)
<?php class Node{ public $value; public $leftNode; public $rightNode; } /* 找到空节点 */ function findEmpytNode($node, $parent = null){ if(empty($node->value)){ return $node; }else{ if(empty($node->leftNode->value)){ return $node->leftNode; }else if(empty($node->rightNode->value)){ return $node->rightNode; }else{ if(empty($parent) || $node->value == $parent->rightNode->value){ return findEmpytNode($node->leftNode, $node); }else{ return findEmpytNode($parent->rightNode, $node); } } } } /* 添加节点 */ function addNode($node, $value){ $emptyNode = findEmpytNode($node); setNode($emptyNode, $value); } /* 设置节点 */ function setNode($node, $value){ $node->value = $value; $node->leftNode = new Node(); $node->rightNode = new Node(); } /* 打印 */ function printTree($node, $parent = null){ if(empty($node->value)) return ; echo $node->leftNode->value; echo $node->rightNode->value; if(empty($parent) || $node->value == $parent->rightNode->value){ printTree($node->leftNode, $node); }else{ printTree($parent->rightNode, $node); } } $head = new Node(); setNode($head, 1); addNode($head, 2); addNode($head, 3); addNode($head, 4); addNode($head, 5); addNode($head, 6); printTree($head);
以上がPHPにおける完全バイナリツリーの定義方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。