求先序序列 NOIP競賽原題

2021-04-13 13:23:46 字數 856 閱讀 5036

【2023年普及組2】求先序排列

time limit:1000ms  memory limit:65536k

total submit:208 accepted:99 

description 

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

input 

一棵二叉樹的中序與後序排列

output 

先序排列

sample input 

badc bdca

sample output 

abcd

*//*

已知中序和後序求前序的方法:

從後序出發,因為後序的最後乙個一定是根,然後再從中序中找到對應的根,然後按前序遍列的

方式輸出。

技巧: 等分原理,找到中序後就要把中序序列分成兩段,左右子樹,然後遞迴進行,分的時候可以

利用求中序的左右子樹的結點個數來確定,後序序列的分段

*/#include 

<

stdio.h

>

#include 

<

string

.h>

#define

max 101

void

tryprint(

char

*s1,

char

*s2,

intst1,

intsd1,

intst2,

intsd2)

intmain(

void){

intlen,i,j;

char

s1[max]={

'

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

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 ...

根據先序序列和中序序列求後序序列的迴圈實現

1 include2 include3 include4 include5 6using namespace std 78 設計樹的資料模型 9 start 1011 template class t 12class treeseq public vector13 1819 template cla...