當前位置:首頁 » 存儲配置 » 用二叉鏈做存儲結構

用二叉鏈做存儲結構

發布時間: 2025-03-03 09:54:05

① 以二叉鏈表為存儲結構,寫出求二叉樹高度和寬度的演算法

樹的高度:對非空二叉樹,其深度等於左子樹的最大深度加1。

Int Depth(BinTree *T){int dep1,dep2;

if(T==Null) return(0);

else{dep1=Depth(T->lchild);

dep2=Depth(T->rchild);

if(dep1>dep2) return(dep1+1);

else return(dep2+1);}

樹的寬度:按層遍歷二叉樹,採用一個隊列q,讓根結點入隊列,最後出隊列,若有左右子樹,則左右子樹根結點入隊列,如此反復,直到隊列為空。

int Width(BinTree *T){intfront=-1,rear=-1;

/*隊列初始化*/int flag=0,count=0,p;

/* pint CountNode (BTNode *t)

//節點總數{int num;if (t == NULL)num = 0;

elsenum = 1 + CountNode (t->lch) + CountNode (t->rch);

return (num);}void CountLeaf (BTNode *t)

//葉子節點總數{if (t != NULL){if (t->lch == NULL && t->rch == NULL)count ++;

// 全局變數CountLeaf (t->lch);CountLeaf (t->rch);}}。

(1)用二叉鏈做存儲結構擴展閱讀

方法:

求二叉樹的高度的演算法基於對二叉樹的三種遍歷,可以用後序遍歷的演算法加上記錄現在的高度和已知的最高的葉子的高度,當找到一個比已知高度還要高的葉子,刷新最高高度。

最後遍歷下來就是樹的高度,至於後序遍歷的演算法,是一本數據結構或者演算法的書中都有介紹和參考代碼

熱點內容
android開機 發布:2025-05-01 17:13:29 瀏覽:255
配置文件怎麼下載 發布:2025-05-01 16:50:13 瀏覽:887
c語言買百雞 發布:2025-05-01 16:49:23 瀏覽:16
比色演算法 發布:2025-05-01 16:41:06 瀏覽:287
為何綁定騰訊雲伺服器ip不能用 發布:2025-05-01 16:26:52 瀏覽:297
ecu演算法 發布:2025-05-01 16:26:44 瀏覽:718
安卓手機用戶怎麼安裝變聲器 發布:2025-05-01 16:26:43 瀏覽:781
coreutils源碼 發布:2025-05-01 16:19:16 瀏覽:345
博物館采訪問題 發布:2025-05-01 16:17:11 瀏覽:495
汽車中控安卓導航哪個牌子好 發布:2025-05-01 15:48:42 瀏覽:964