//バイナリ列を保存します
#define MAXTSIZE 100
typedefのTElemtype SqBiTree [MAXTSIZE]。
SqBiTree BT;
//バイナリツリーバイナリ表現格納されたリスト
typedefは構造体BiTNode
{
TElemTypeデータ。
構造体BiTNode * lchild、* rchild。
} BiTNode、* BiTree。
// INORDERトラバーサル、再帰的なアルゴリズム
空InorderTraverse(BiTree T)
{
(T)の場合
{
InOrderTraverse(T-> lchild);
coutの<< T->データ;
InOrderTraverse(T-> rchild);
}
}
順トラバーサルで//非再帰的なアルゴリズム
空InOrderTraverse(BiTree T)
{
InitStack(S)。
P = T。
Q =新しいBiTNode。
しばらく(P ||!StackEmpty(S))
{
(P)の場合
{
プッシュ(S、P)。
P = P - > lchild。
}
他
{
ポップ(S、Q)。
coutの<< Q->データ;
P = Q-> rchild。
}
}
}
//先行順走査シーケンスは、バイナリリストを設立します
空CreateBiTree(BiTree&T)
{
cinを>> CH;
(CH == '#')であればT = NULL;
他
{
T =新しいBiTNode。
T->データ= CHを;
CreateBiTree(T-> lchild);
CreateBiTree(T-> rchild);
}
}