首頁 > 後端開發 > php教程 > php如何實作二元樹的創建(程式碼實例)

php如何實作二元樹的創建(程式碼實例)

不言
發布: 2023-04-04 12:40:02
轉載
3173 人瀏覽過

這篇文章帶給大家的內容是關於php如何實現二元樹的創建(程式碼實例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

1、利用遞歸的原理,只不過在原來印結點的地方,改成了生成結點,給結點賦值的操作
if(ch=='#' ){*T=NULL;}else{malloc();(*T)->data=ch;createFunc((*T)->lchild);createFunc((*T)->rchild);}

2.前序遍歷:先訪問根結點,前序遍歷左子樹,前序遍歷右子樹;中左右

3.將二元樹中每個結點的空指標引出一個虛結點,其值為特定值#,處理二元樹為原始二元樹的擴展二元樹,擴展二元樹做到一個遍歷序列確定一棵二元樹

<?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中文網其他相關文章!

相關標籤:
php
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板