生成演算法是遞迴的,對於先序序列來講,第乙個元素就是當前子樹的根節點,對於中序序列來講,每乙個中序序列都會被分割為兩個部分,這兩個部分就是下一次的要構造的子樹,所以說生成子樹的過程是自頂向下的
public
class
gentree
string
rootdata
=pre[0
];string
leftin
=new
string[10
];string
rightin
=new
string[10
];string
leftpre
=new
string[10
];string
rightpre
=new
string[10
];int
flag=0
;for
(inti=0;i
i++)if(
flag==0
)else}if
(root
==null
)else
rootnode
.lnode
=gen
(leftpre
,leftin
,flag
);rootnode
.rnode
=gen
(rightpre
,rightin,n
-flag-1
);return
rootnode;}
}class
node
class
main
;string
in=;gentree
gentree
=new
gentree
();gentree
.gen
(pre,in
,6);node
root
=gentree
.root
;show
(root);}
public
static
void
show
(node
node)}
}
??正文結束?? 二叉樹先序遍歷 中序遍歷 後序遍歷
輸入二叉樹的先序遍歷序列和中序遍歷序列,輸出該二叉樹的後序遍歷序列。非建二叉樹版本 include includeusing namespace std string preord,inord void rebuild int preleft,int preright,int inleft,int ...
二叉樹 先序遍歷 中序遍歷 後續遍歷
package com.example.ljia.structure.tree import lombok.data author samlai description 遞迴 二叉樹 先序遍歷 中序遍歷 後續遍歷 先序遍歷 根 左 右 中序遍歷 左 根 右 後序遍歷 左 右 根 發現規律 這裡的順序...
二叉樹先序遍歷 後序遍歷 中序遍歷
從根部 a 開始,然後開始遍歷左子樹,直接找到 b 檢視 b 有沒有左子樹,有 d,再檢視 d 有沒有子樹,沒有,d 已經是葉子,所以第二個是 d。倒回去,取中 b,第三個數是 b。檢視 b 有沒有右子樹,有 e 檢視 e 有沒有子樹,有 g 左 h 右 所有後面三個數是 egh 先查左子樹,存在繼...