由中序序列和後序序列得到先序序列

2021-10-04 17:37:40 字數 639 閱讀 1664

寫的有點繁瑣,這次來個簡潔點的。

思路都是一樣的

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

22行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。

11行,表示一棵二叉樹的先序。

輸入 #1複製

badc

bdca

輸出 #1複製

abcd
直接上**:思路簡單不解釋

#includeusing namespace std;

int n;

string pre,re,in;

void dfs(int rel,int rer,int inl,int inr)

int lenl = k-inl;

dfs(rel,rel+lenl-1,inl,inl+lenl-1);

dfs(rel+lenl,rer-1,k+1,inr);

}int main()

由中序和後序(前序)序列求前序(後序)序列

已知二叉樹的中序和後序 前序 序列可以唯一確定一顆二叉樹,例如,中序序列 1 2 3 4 5 6 後序序列 3 4 2 6 5 1 可以唯一確定一顆二叉樹,如下圖 思路是這樣的 我們知道對於一顆二叉樹,根節點是後序遍歷序列的最後乙個,找到根節點後,我們由中序遍歷的特點知道,中序序列中,根節點 左邊的...

已知先序中序序列求後序序列

way 1.由先序和中序遍歷序列確定一棵二叉樹,再後序遍歷得到後序序列。如何確定呢?1.根據先序遍歷的第乙個結點確定根節點 2.根據根節點在中序遍歷序列的位置分割出左右兩個子串行,即根節點的左右子樹 3.對左右子樹按此方法遞迴進行分解。定義二叉樹的資料結構 typedef struct treeno...

已知後序中序序列求先序序列

方法呢,與前一篇一樣,建樹或者不建樹皆可,這裡不做過多說明,直接show code。way 1.typedef struct treenode bintree struct treenode bintree buildtree char post,char in,int n way 2.const ...