二叉樹遍歷(已知中序和按層遍歷求先序 遞迴)

2021-08-07 17:43:35 字數 721 閱讀 6975

時間限制: 1000 ms         記憶體限制: 65536 kb

提交數: 8     通過數: 6 

樹和二叉樹基本上都有先序、中序、後序、按層遍歷等遍歷順序,給定中序和其它一種遍歷的序列就可以確定一棵二叉樹的結構。

假定一棵二叉樹乙個結點用乙個字元描述,現在給出中序和按層遍歷的字串,求該樹的先序遍歷字串。

兩行,每行是由字母組成的字串(一行的每個字元都是唯一的),分別表示二叉樹的中序遍歷和按層遍歷的序列。

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

dbeac

abcde

abdec
no

提交 統計資訊

#include#includeusing namespace std;

string s1,s2;

void calc(int l1,int r1,int l2,int r2)

{ int i,j;

for(i=l2;i<=r2;i++)//找層次遍歷中優先輸出根節點的位置

{ int b=0;

for(j=l1;j<=r1;j++)

{ if(s2[i]==s1[j])

{coutif(j>s1>>s2;

calc(0,s1.length()-1,0,s2.length()-1);

cout《這種題一般都要先確定好根節點的位置。然後才根據先序、中序、後序的規則進行遞迴。

已知中序遍歷和層序遍歷還原二叉樹

在網上找了很久發現能寫清楚的很少。命名風格讓人真的很難理解。參考了大神的 原位址大神 已知層序和中序還原二叉樹 vector int layer 層序遍歷結果 vector int leftlayer vector int rightlayer in il,ir 中序遍歷結果 node creat ...

已知中序遍歷和層序遍歷還原二叉樹

解答思路 相關題目 給出二叉樹的中序遍歷序列和層序遍歷序列,程式設計還原該二叉樹。第1行 二叉樹的中序遍歷序列 第2行 二叉樹的層序遍歷序列 二叉樹的前序遍歷序列 abcdefg dbafegc abdcefg include include include include using namesp...

已知前序遍歷和中序遍歷求二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請輸出後序遍歷序列。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,重建二叉樹並返回後序遍歷序列 輸入某二叉樹的前序遍歷和中序遍歷的結果 輸出後序遍歷序列 1 2 4 7 3 5 6 8 4 7 2 1 5 3 8 6...