擴充套件二叉樹(樹)

2021-07-11 01:57:59 字數 1802 閱讀 4078

description

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

現給出擴充套件二叉樹的先序序列,要求出其中中序和後序序列。

input

output

sample input

abd..ef..g..c..

sample output

dbfegac 

dfgebca

解題思路:

先用指標變數和線性鍊錶建立乙個二叉樹,然後用遞迴分別輸出中序序列和後續序列即可。

程式:
type
tree=^node;
node=record

a:char;

lchild,rchild:tree;

end;

var
s:string;
i:longint;
t:tree;

procedure build(var t:tree);
begin

inc(i);

if s[i]<>'.' then

begin

new(t);

t^.a:=s[i];

build(t^.lchild);

build(t^.rchild);

end

else t:=nil;

end;

procedure printzx(t:tree);
begin

if t<>nil then

begin

printzx(t^.lchild);

write(t^.a);

printzx(t^.rchild);

end;

end;

procedure printhx(t:tree);
begin

if t<>nil then

begin

printhx(t^.lchild);

printhx(t^.rchild);

write(t^.a);

end;

end;

begin
readln(s);
i:=0;
build(t);
printzx(t);
writeln;
printhx(t);
end.

擴充套件二叉樹

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

擴充套件二叉樹

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

擴充套件二叉樹

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