計算二叉樹的高度可以採用幾種不同的演算法。
演算法一:採用後序遍歷二叉樹,結點最大棧長即為二叉樹的高度;
演算法二:層次遍歷二叉樹,最大層次即為二叉樹的高度;
演算法三:採用遞迴演算法,求二叉樹的高度。
/法1:後序遍歷,結點最大棧長即為樹的高度
//法2:層次遍歷,層次即為高度
//法3:遞迴求樹高
//除錯程式輸入二叉樹:-+a##*b##-c##d##/e##f##
//程式輸出該二叉樹的高度:5#include#include#includeusing namespace std;
typedef struct bitnodebitnode,*bitree;
void createtree(bitree &t) }
//法1:後序遍歷,結點最大棧長即為樹的高度
int bt_high(bitree t)
else
} }
return max;
}
//法2:層次遍歷,層次即為高度
int bt_level_depth(bitree t)
} return level;
}
//法3:遞迴求樹高1
int max1=0;//樹高
int bt_depth1(bitree t,int depth)
if(depth>max1)
max1=depth;
return depth;
}
//法3:遞迴求樹高2
int height (bitree t) }
int main()
{ bitree t=null;
createtree(t);
cout<<"後序遍歷求樹高:"<
二叉樹的計算方法
已知先序遍歷序列和中序遍歷序列,求出後序序列 或者 已知中序序列和後序序列 求出先序遍歷。都是一些考試中容易考的題目。經過研究發現,已知先序序列和後序序列,無法唯一確定一棵樹,所以就無法得知中序 序列。下邊給出例題 一 已知先序和中序,求出後序。下邊再舉乙個例子,如下圖 通過上邊兩個例子的學習,對這...
二叉樹的三種遍歷方法
定義二叉樹 鏈式儲存 struct binarytreenode 順序儲存 struct binarytreenode 遞迴實現 先序遍歷 int preordertreewalk binarytreenode pnode 中序遍歷 int inordertreewalk binarytreenod...
二叉樹的三種遞迴方法
今天學習了二叉樹的知識學習了三種遍歷二叉樹的方法,雖然不知道後面兩種有什麼卵用,但還是講解一下 第一種 先序遍歷 1 先訪問其節點本身 2 訪問其左邊的子節點 3 再訪問其右邊的子節點。這種遍歷二叉樹的方法其實就是深搜,先訪問左邊一整條線的節點,就相當於搜尋迷宮時朝乙個方向一直走,直到不能走時再換乙...