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...