//左根右 void InorderTraversal( BinTree BT ) { if(BT) { InorderTraversal(BT->Left); printf(" %c",BT->Data); InorderTraversal(BT->Right); } } //根左右 void PreorderTraversal( BinTree BT ) { if(BT) { printf(" %c",BT->Data); PreorderTraversal(BT->Left); PreorderTraversal(BT->Right); } } //左右根 void PostorderTraversal( BinTree BT ) { if(BT) { PostorderTraversal(BT->Left); PostorderTraversal(BT->Right); printf(" %c",BT->Data); } } //层序输出,用一个队列存一个结点,输出队列元素,然后每次存左右结点就好啦 void LevelorderTraversal( BinTree BT ) { if(BT==NULL) return; BinTree q[10010]; int s,t; s=t=0; BinTree T; q[t++]=BT; while(s<t) { T=q[s]; printf(" %c",T->Data); if(T->Left) q[t++]=T->Left; if(T->Right) q[t++]=T->Right; s++; } }