白書練習 二叉樹的重構

2021-07-09 20:33:37 字數 547 閱讀 9419

二叉樹的重構,給定乙個二叉樹的先序遍歷和中序便利,輸出後序遍歷結果,首先明確問題,我們需要建構乙個二叉樹,然而二叉樹的乙個很重要的特點就是二叉樹是遞迴定義的,所以我們往往遞迴的解決,那麼問題就是給一段先序遍歷和中序遍歷後,確定出二叉樹的三個重要元素即根節點和左子樹和右子樹,根據先序便利的特徵我們知道第乙個元素就是根節點,但是我們還需要確定左子樹和右子樹,由根據中序便利的特點我們知道在中序便利中根節點之前的元素屬於左子樹,之後的元素屬於右子樹,這樣我們就確定了乙個二叉樹的三元素,之後我們就可以遞迴的解決這個問題。

//

// main.cpp

// 樹的重構

//// created by 張嘉韜 on 16/2/4.

//#include #include using namespace std;

char str1[500],str2[500],len;

int find(char *s,char key)

void buid(int s1,int e1,int s2,int e2)

白書練習 層次遍歷 (二叉樹的bfs)

main.cpp 層次遍歷 created by 張嘉韜 on 16 2 1.include include include using namespace std int counter,pcounter,b 1000 struct node 建立節點結構 node a 1000 node cre...

二叉樹重構

問題描述 根據前序遍歷結果和中序遍歷結果,重構二叉樹。1 前序遍歷結果的特點 假設當前的遍歷結果是完整的樹節點集合。那麼第乙個節點就是該樹的根節點,並且其後面的節點集合中,前半部分是其左子樹的節點集合,後半部分是其右子樹的節點集合。2 中序遍歷結果的特點 如果當前節點是當前樹的根節點,那麼該節點左邊...

重構二叉樹

重構二叉樹的思路主要是首先在前序 後序 序列中找到根結點,然後在中序序列中找到根結點所在的位置,該結點將整個序列分成兩個部分,前一部分為根結點的左子樹元素,後一部分為根結點的右子樹元素。再遞迴的生成左子樹和右子樹即可。1.通過前序,中序序列重構二叉樹 treenode buildtree vecto...