二叉樹的定義

2021-07-25 22:12:06 字數 1849 閱讀 8837

二叉樹的基本資料結構

使用陣列構造二叉樹

迭代方式實現先序 中序遍歷

水平遍歷

class btree

else

}public function setleft($bt2)

public function setright($bt2)

public function setkey($key)

function pretra()

function ortra()

function potra()

}
使用陣列構造二叉樹---水平遍歷bfs使用隊儲存節點

陣列 ,構造二叉樹

3 / \

9 20

/ \15 7

function create($bt,$arr)

$p->key=$arr[$i];

$p->left=new btree();

$qu->push($p->left);

$p->right=new btree();

$qu->push($p->right);

$i++;

}}$bt =new btree();

$arr=array(3,9,20,'#','#',15,16);

create($bt,$arr);

2 給乙個陣列,要求建立二叉樹的深度最低
function create3($bt,$arr,$begin,$end)

3 迭代方式實現先序 中序遍歷非遞迴的中序和先序遍歷方法相同。但是後序遍歷,要棧不僅儲存樹指標的位置,還要有是否訪問過其右子樹
先序---採用棧

function pretran($bt)

else

}}

中序遍歷
function ortran($bt)

else

}}

後序遍歷,還要記錄每個節點訪問的次數,當訪問過一次其flag加1,訪問次數為2次的表示左右子樹已經訪問過,則出棧。為1表示左子樹已經訪問過,右字數沒有訪問過。
function 

postorder($bt)

$p=$st[count($st)-1];

if($p->flag==1)else if($p->flag==2)

}}

水平遍歷

二叉樹的定義

滿二叉樹 除葉子結點外,所有結點均有兩個子結點。所有葉子結點在同一層。完全二叉樹 若設二叉樹的深度為h,除第 h 層外,其它各層 1 h 1 的結點數都達到最大個數,第 h 層所有的結點都連續集中在最左邊,這就是完全二叉樹 可以根據公式進行推導,假設n0是度為0的結點總數 即 葉子結點 數 n1是度...

二叉樹的定義

樹的概念 子節點和父節點 是相對定義的 一棵樹的根節點稱為該樹的子樹的根節點的父節點 子樹的根是樹根的子節點 邊 從父節點到子節點的連線 邊有方向 兄弟節點 父節點相同的節點互為兄弟節點 樹葉 分支節點 沒有子節點的節點稱為樹葉,樹中的其餘節點稱為分支節點 分支節點可只有乙個分支 祖先和子孫 基於父...

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...