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