利用中序 後序 恢復二叉樹

2021-06-06 02:01:04 字數 524 閱讀 2294

要恢復乙個二叉樹,必須要有乙個中序。

利用後序得到根,再根據中序將樹分成左右兩份。然後遞迴地呼叫即可。

注意:此**未對後序與中序的字串有效性進行檢查。

#includeusing namespace std;

struct node

;node * reconstruct(const char *postorder, int pstart, int pend, const char *midorder, int mstart, int mend)

else }

void zhong_xu(node *root)

}void xian_xu(node *root)

}int main()

{ const char*post="debfgca";

const char *mid="dbeafcg";

node* root =reconstruct(post,0,6,mid,0,6);

zhong_xu(root);

cout<

利用後序和中序遍歷恢復二叉樹

利用後序和中序遍歷可以將二叉樹還原出來,以便於進行其他樹的操作。在這裡我們還原出二叉樹之後進行先序遍歷來求得先序遍歷的結果,我們約定還原樹的函式叫做restoretree 過程後序遍歷例項 c b e h g i f d a 中序遍歷例項 b c a e d g h f i 中序遍歷開始位置,結束位...

二叉樹 先序 中序 後序

同學整理的,順便傳上分享下 一,已知先序和中序 求後序 1 include2 include3 include4 using namespace std 5char s1 10 s2 10 ans 10 6 int o 0 7 void tree int n char s1 char s2 char...

二叉樹先序 中序 後序遍歷

題目 用遞迴和非遞迴方式,分別按照二叉樹先序 中序和後序列印所有的節點。我們約定 先序遍歷順序為根 左 右 中序遍歷順序為左 根 右 後序遍歷順序為左 右 根。遞迴實現 遞迴遍歷二叉樹 先序 public void preorderrecur node head system.out.println...