久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
二叉樹的深度問題
[打印本頁]
作者:
51黑bing
時間:
2016-3-22 23:37
標題:
二叉樹的深度問題
題目:二叉樹用二叉鏈表表示,編寫求二叉樹深度的算法。
答案是:
int height(Bitree T)
{
if (T==NULL) return 0;
u=height(T->lchild);
v=height(T->rchild);
if (u>n) return (u+1)
return (v+1)
}
關于遞歸,你可以看成是一句一句往下運行嘛。需要保存狀態的時候,系統就會自動用棧幫你保存。就依你說得那個為例:
n為全局變量,初值為0;
第一次調用height(T),假設T!=NULL
由于T!=NULL:跳過if (T==NULL) return 0;
關鍵到了u=height(T->lchild); 調用本身的函數:此時的T->lchild保存在棧中,既然是調用就得從函數開頭執行:
看下這時候T2(其實就是T->lchild),if (T==NULL) return 0;
這里假設T不是NULL,就繼續運行在遇到u=height(T->lchild); 在調這個函數本身——
這里就假設它為T->lchild==NULL吧。這下可好,這個函數執行return 0;
慢著:第二次函數調用u=height(T->lchild)中的函數值已經計算出來啦。這時u=0;
你還記得第二次調用運行到了v=height(T->rchild); 這句話吧?好,這個過程就和u=height(T->lchild)完全一樣。
這里也假設得到的v=0
則第二次調用到了if (u>n) return (u+1)
return (v+1)
得到一個返回值,不如就假設u〉n,于是返回值1;
好,這一波完畢;
你還記得第一次調用的height吧,這時把返回值給u,u=1;
然后執行到第一次調用中的v=height(T->rchild); 了。分析同上。
這個過程的確比較復雜。慢慢琢磨吧。呵呵。
基本思路就是如果當前節點還有子節點,則繼續訪問,遞歸的找尋子節點直到葉子節點為止。
procedure tree(a:node,depth:integer);
begin
if result<depth then result:=depth;
if a.leftchild<>nil then tree(a.leftchild,depth+1);
if a.rightchild<>nil then tree(a.rightchild,depth+1);
end;
注:result是全局變量,是結果
實際上最好不用什么全局變量
int depth(node *bt)
{ if (bt==NULL)
return 0;
ldepth=depth(bt->left)+1;
rdepth=depth(bt->right)+1;
return max(ldepth,rdepth);
}
全局變量是bug
int Height(BiTree T){
int m,n;
if(!T) return(0);
else
m=Height(T->lchild);
n=Height(T->rchild);
return((m>n?m:n)+1);
}
求樹深度的遞歸算法
// struct bnode{struct bnode *lc,*rc);
int depth(struct bnode *r)
{
return r==NULL?0:1+max(depth(r->lc),depth(r->rc));
}
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
二区精品
|
国产精品成人一区二区三区
|
中文字幕一区二区三区四区五区
|
夜夜爽99久久国产综合精品女不卡
|
亚洲精品国产一区
|
日本韩国电影免费观看
|
久久久99国产精品免费
|
老头搡老女人毛片视频在线看
|
一级毛片免费
|
久久久不卡网国产精品一区
|
正在播放国产精品
|
成人一级视频在线观看
|
精品久久国产
|
视频精品一区二区三区
|
午夜免费
|
99久久久无码国产精品
|
亚洲中午字幕
|
av一级久久
|
国产一区二区三区四区五区加勒比
|
日韩精品一区二区三区在线播放
|
欧美日韩中文字幕在线
|
亚洲一区二区三区在线播放
|
日韩一二区
|
亚洲一区黄色
|
国产污视频在线
|
国产欧美在线播放
|
精品欧美一区二区三区免费观看
|
亚洲欧美在线视频
|
av黄色国产
|
亚洲欧美日韩在线
|
免费看片在线播放
|
草久网
|
jav成人av免费播放
|
精品久久久久久久久久久久久久
|
男人午夜视频
|
91 中文字幕
|
日韩欧美一级片
|
亚洲一区二区在线视频
|
成人在线一区二区三区
|
国产精品一区二区三区在线
|
成人在线视频免费观看
|