求先序排列 藍橋杯

2021-06-28 18:39:14 字數 736 閱讀 3452

問題描述

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

輸入格式

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

輸出格式

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

樣例輸入

badc

bdca

樣例輸出

abcd

解題思路:

後序遍歷的最後一位是根,因此可以在中序遍歷中找到後序遍歷的根,然後遞迴右子樹,左子樹即可

#include#include#include#include#includeusing namespace std;

struct node;

bool vis[26];

void dfs(node *&t,string a,string b)

if(t<0) return ;

t->data=b[t];

vis[b[t]-'a']=true;

dfs(t->rc,a.substr(a.find(b[t])+1,la-a.find(b[t])-1),b.substr(0,t));

dfs(t->lc,a.substr(0,a.find(b[t])),b.substr(0,t));

} else

t=null;

}void visit(node *t)

}int main()

求先序排列

給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8。2行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。1行,表示一棵二叉樹的先序。badc bdca abcd 就是乙個先中後序遍歷的問題,看 吧,有標註示。include include using...

求先序排列

題目描述 給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 16 輸入 每個測試檔案只包含一組測試資料,每組輸入包含兩行,第一行輸入乙個字串表示二叉樹的中序排列,第二行輸入乙個字串表示二叉樹的後序排列。輸出 對於每組輸入資料,輸出二叉樹的先序排列。樣例輸入 ba...

求先序排列

operatorname luogup 1030 給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8 le 8 8 2 22 行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。1 11 行,表示一棵二叉樹的先序。badc bdcaabcd這道題是一道...