根据后序和中序求二叉树的先序
生活随笔
收集整理的這篇文章主要介紹了
根据后序和中序求二叉树的先序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
代碼如下:
#include <iostream> using namespace std; const int N = 1010; int in_order[N], post_order[N], lch[N], rch[N];int build(int inL, int inR, int postL, int postR) {if (inL > inR)return 0;int root = post_order[postR];int k = inL;while (in_order[k] != root)k++;int numLeft = k - inL;lch[root] = build(inL, k - 1, postL, postL + numLeft - 1);rch[root] = build(k + 1, inR, postL + numLeft, postR - 1);return root; }void dfs(int u) {cout << u << " ";if (lch[u])dfs(lch[u]);if (rch[u])dfs(rch[u]); }int main() {int n;cin >> n;for (int i = 0; i < n; i++)cin >> in_order[i];for (int i = 0; i < n; i++)cin >> post_order[i];build(0, n - 1, 0, n - 1);dfs(post_order[n - 1]);return 0; }測(cè)試結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的根据后序和中序求二叉树的先序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 芝奇为 AMD 线程撕裂者 7000 处
- 下一篇: 耀耀领先?博主称荣耀100系列尚未发布就