擴充套件二叉樹

2021-08-22 16:21:46 字數 1012 閱讀 3288

由於先序、中序和後序序列中的任乙個都不能唯一確定一棵二叉樹,所以對二叉樹做如下處理,將二叉樹的空結點用·補齊,如圖所示。我們把這樣處理後的二叉樹稱為原二叉樹的擴充套件二叉樹,擴充套件二叉樹的先序和後序序列能唯一確定其二叉樹。現給出擴充套件二叉樹的先序序列,要求輸出其中序和後序序列。

輸入擴充套件二叉樹的先序序列

輸出其中序和後序序列

abd..ef..g..c..
dbfegac
dfgebca
#include

#include

using namespace std;

char a[1000];

int n,k;

struct treet[1000];

void dfs(){

int fa=k;

if(a[k+1]!='.'){  //'.'後面的第乙個字母是右分支,前面不是 '.' 的字母都是左分支

t[fa].l=k+1;

k++;

dfs();

else k++;

if(a[k+1]!='.'){

t[fa].r=k+1;

k++;

dfs();

else k++;

void mid(int p){   //中序遍歷輸出

if(t[p].l)

mid(t[p].l);

cout

mid(t[p].r);

void later(int p){   //後序遍歷輸出

if(t[p].l)

later(t[p].l);

if(t[p].r)

later(t[p].r);

cout

cin>>a;

n=strlen(a);

dfs();

mid(0);

cout

return 0;

擴充套件二叉樹

由於先序 中序和後序序列中的任乙個都不能唯一確定一棵二叉樹,所以對二叉樹做如下處理,將二叉樹的空結點用 補齊,我們把這樣處理後的二叉樹稱為原二叉樹的擴充套件二叉樹,擴充套件二叉樹的先序和後序序列能唯一確定其二叉樹。現給出擴充套件二叉樹的先序序列,要求輸出其中序和後序序列。輸入有多組資料,對於每組資料...

擴充套件二叉樹

時間限制 1000 ms 記憶體限制 65536 kb 由於先序 中序和後序序列中的任乙個都不能唯一確定一棵二叉樹,所以對二叉樹做如下處理,將二叉樹的空結點用 補齊,如圖所示。我們把這樣處理後的二叉樹稱為原二叉樹的擴充套件二叉樹,擴充套件二叉樹的先序和後序序列能唯一確定其二叉樹。現給出擴充套件二叉樹...

擴充套件二叉樹

由於先序 中序和後序序列中的任乙個都不能唯一確定一棵二叉樹,所以對二叉樹做如下處理,將二叉樹的空結點用 補齊,如圖所示。我們把這樣處理後的二叉樹稱為原二叉樹的擴充套件二叉樹,擴充套件二叉樹的先序和後序序列能唯一確定其二叉樹。現給出擴充套件二叉樹的先序序列,要求輸出其中序和後序序列。輸入擴充套件二叉樹...