「データ構造とアルゴリズム(C言語版)、」ヤン魏ミン|章教科書ケース

//バイナリ列を保存します 
#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);
	}
} 

  

おすすめ

転載: www.cnblogs.com/chrysanthemum/p/11762542.html