樹遍歷的應用——樹的重建
問題描述:現有兩個結點序列,分別是對同乙個二叉樹進行前序遍歷和中序遍歷。請輸出該二叉樹的後序遍歷。
輸入:第一行輸入二叉樹的結點數。
第二行輸入前序遍歷的結點編號序列,相鄰編號用空格隔開。
第三行輸入中序遍歷的結點編號序列,相鄰編號用空格隔開。
輸出:在一行輸出按後序遍歷時的結點編號序列。相鄰結點用1個空格隔開。
限制:1 < 結點數< 100
樣例輸入:3
1 2 3
2 1 3
樣例輸出:2 3 1
分析:前序遍歷序列pre中依次為根結點的編號,例如,pre =
在中序遍歷序列in中, in = ,從而序列in中根結點1左邊的序列
3, 2, 5, 4, 6為根結點1的左子樹,根結點右邊的序列8,7為右子樹。
這樣重建樹的時候,可以用遞迴的方式,實現樹的後序遍歷。
#include #include const int max = 10000;
int n, pos, npost;//npost後序遍歷序列中的結點個數
int pre[max], in[max], post[max];
void rec(int left, int right);
void solve();
int main()
return 0;
}void rec(int left, int right)
void solve()
printf("\n");
return;
}
C C 樹遍歷的應用 樹的重建
輸入 第1行輸入二叉樹的結點數 第2行輸入前序遍歷的結點編號序列,相鄰編號用空格分開 第3行輸入中序遍歷的結點編號序列,相鄰編號用空格分開 輸出 在1行中輸出後序遍歷的結點編號序列,用空格分開 include include include include using namespace std i...
樹的遍歷 樹的遍歷(PTA)
給定一棵二叉樹的後序遍歷和中序遍歷,請你輸出其層序遍歷的序列。這裡假設鍵值都是互不相等的正整數。輸入第一行給出乙個正整數n 是二叉樹中結點的個數。第二行給出其後序遍歷序列。第三行給出其中序遍歷序列。數字間以空格分隔。在一行中輸出該樹的層序遍歷的序列。數字間以1個空格分隔,行首尾不得有多餘空格。7 2...
樹及樹的遍歷
幾個概念和性質 樹可以沒有結點,此情況下稱為空樹 empty tree 樹的層次 layer 從根結點開始算起,即根節點為第一層 把節點的子樹棵樹稱為結點的度 degree 而樹中結點的最大值的度稱為樹的度 樹的邊數等於結點數減1,反之,滿足連通且邊數等於結點數減1即為樹 結點深度自頂向下累加,結點...