已知二叉樹前序 中序遍歷結果,求該二叉樹的後序遍歷

2021-08-17 01:50:38 字數 802 閱讀 2417

1. 根據給定的二叉樹前序和中序遍歷結果還原二叉樹;

2. 將還原的二叉樹以二叉樹形式儲存在記憶體中;

3. 對建立的二叉樹進行後序遍歷

**如下:

#include

#include

using namespace std;

/*char str1[30];   //儲存前序遍歷字串

char str2[30];  //儲存後序遍歷字串

int loc;   //靜態陣列中已分配的結點個數

//因為有多組樣例輸入,因此用loc記錄每個樣例的根結點的位置

struct node

tree[51];   //用陣列儲存樹的各個結點,用指標代表各結點之間的關係

//注意,指標指向的是各結點的陣列位址

node *creat()    //初始化,返回的是一node型指標

void postorder(node *t) //後序遍歷,t是結構指標

if (t->rchild!=null)

cout << t->c;  //輸出雙親結點

}//由字串的前序和中序遍歷得到原樹,返回原樹的根結點

node *build(int s1, int e1, int s2, int e2)  //傳入的引數是字串的下標

}if (rootinx!=s2)   //原樹有左子樹

if (rootinx!=e2)  //原樹有右子樹

return ret;  //返回原樹的根結點指標

}int main()

return 0;

}*/

已知二叉樹前序 後序遍歷如何求中序

已知二叉樹的兩種遍歷求第三種遍歷。已知前序和中序求後序,已知後序和中序求前序,這兩種解法網上有很多,但是已知前序和後序求中序的解法我沒找到,這裡寫乙個自己的想法,有可能大家已經想到了我沒有搜尋到而已 首先,我們看看前序 中序 後序遍歷的特性 前序遍歷 1.訪問根節點 2.前序遍歷左子樹 3.前序遍歷...

已知二叉樹前序和中序求後序

設某二叉樹 前序遍歷為 abcdefghi 中序遍歷為 bcaedghfi 求該二叉樹的後序遍歷?因為二叉樹前序遍歷為 abcdefghi,所以這棵樹的根結點為 又因為中序遍歷為 bcaedghfi,所以這棵樹的左子樹為bc,右子樹為edghfi 現在先看左子樹中序遍歷 bc,由前序遍歷abcdef...

已知前序遍歷和中序遍歷求二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請輸出後序遍歷序列。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,重建二叉樹並返回後序遍歷序列 輸入某二叉樹的前序遍歷和中序遍歷的結果 輸出後序遍歷序列 1 2 4 7 3 5 6 8 4 7 2 1 5 3 8 6...