二叉树结构 typedef struct TreeNode *BinTree; typedef BinTree Position; struct TreeNode { ElementType Data; BinTree Left; BinTree Right; }; 二叉树的遍历 前序遍历(递归方式) void PreOrderTraversalR ( BinTree BT ) { if ( BT ) { printf("%5c ", BT->Data); PreOrderTraversalR(BT->Left); PreOrderTraversalR(BT->Right); } } 前序遍历(迭代方式) void PreOrderTraversalI ( BinTree BT ) { BinTree T = BT; Stack S = CreateStack(); while ( T || !IsStackEmpty(S) ) { while (T) { printf("%5c ", T->Data); Push(S, T); T = T->Left; } if ( !IsStackEmpty(S) ) { T = Pop(S); T = T->Right; } } } 中序遍历(递归方式) void InOrderTraversalR ( BinTree BT ) { if ( BT ) { InOrderTraversalR(BT->Left); printf("%5c ", BT->Data); InOrderTraversalR(BT->Right); } } 中序遍历(迭代方式) void InOrderTraversalI ( BinTree BT ) { BinTree T = BT; Stack S = CreateStack(); while ( T || !