給定樹的後序和中序排列求先序排列

2021-08-19 11:24:03 字數 687 閱讀 7439

問題描述

給出一棵二叉樹的中序與後序排列。求出它的先序排列。(約定樹結點用不同的大寫字母表示,長度<=8)。

輸入格式

兩行,每行乙個字串,分別表示中序和後序排列

輸出格式

乙個字串,表示所求先序排列

樣例輸入

badc

bdca

樣例輸出

abcd

演算法思想:我們先去尋找這棵樹的根,即後序排列的最後乙個元素,然後在中序排列中找到它,此時在中序排列中,其左邊就是左子樹,右邊就是右子樹,分別記錄下左子樹和右子樹的元素個數,就能同時在後序排列中找到左右子樹的分布區間,對子樹繼續遞迴重複以上過程即可,**如下。

#include

#include

#include

#include

#include

using namespace std;

char mid[10];

char hou[10];

int len;

void seek(int first,int last,int mfir,int mlast)

{if(first>last||mfir>mlast)

return ;

char ch=hou[last];

cout<

二叉樹的中序後序排列求先序 先序中序排列求後序

本題要求根據給定的一棵二叉樹的後序遍歷和中序遍歷結果,輸出該樹的先序遍歷結果。第一行給出正整數n 30 是樹中結點的個數。隨後兩行,每行給出n個整數,分別對應後序遍歷和中序遍歷結果,數字間以空格分隔。題目保證輸入正確對應一棵二叉樹。在一行中輸出preorder 以及該樹的先序遍歷結果。數字間有1個空...

已知先序和中序求後序或中序和後序求先序

首先介紹樹的三種遍歷方式的遍歷順序 先序遍歷 根 左子樹 右子樹 特點 第乙個元素為根 中序遍歷 左子樹 根 右子樹 特點 根的兩邊分別為左子樹和右子樹 後序遍歷 左子樹 右子樹 根 特點 最後乙個元素為根 有如下圖的二叉樹 其先序 中序 後序遍歷分別為 dbacegf abcdefg acbfge...

求先序排列(二叉樹已知中序和後序,求先序)

時間限制 1 sec 記憶體限制 125 mb 提交 90 解決 73 給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8 每個測試檔案只包含一組測試資料,每組輸入包含兩行,第一行輸入乙個字串表示二叉樹的中序排列,第二行輸入乙個字串表示二叉樹的後序排列。對於每...