樹遍歷的應用 樹的重建

2021-07-24 04:25:38 字數 812 閱讀 9509

樹遍歷的應用——樹的重建

問題描述:現有兩個結點序列,分別是對同乙個二叉樹進行前序遍歷和中序遍歷。請輸出該二叉樹的後序遍歷。

輸入:第一行輸入二叉樹的結點數。

第二行輸入前序遍歷的結點編號序列,相鄰編號用空格隔開。

第三行輸入中序遍歷的結點編號序列,相鄰編號用空格隔開。

輸出:在一行輸出按後序遍歷時的結點編號序列。相鄰結點用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即為樹 結點深度自頂向下累加,結點...