【链表存储结构】
/* 定义二叉树结构 */
typedef struct TreeNode *BinTree;
typedef BinTree Position;
struct TreeNode{
ElementType Data;
BinTree Left;
BinTree Right;
}
【先序遍历】
先访问根节点,先序遍历其左子树,先序遍历其右子树。
/* 先序遍历 */
/* 遍历顺序 ABDFE CGHI */
void PreOrderTraversal(BinTree BT)
{
if(BT){
printf("%d",BT->Data);
PreOrderTraversal(BT->Left);
PreOrderTraversal(Bt->Right);
}
}
【中序遍历】
/* 中序遍历 */
/* 左子树->根节点->右子树
D B E F A G H C I */
void PreOrderTraversal(BinTree BT)
{
if(BT){
PreOrderTraversal(BT->Left);
printf("%d",BT->Data);
PreOrderTraversal(Bt->Right);
}
}
【后序遍历】
/* 后序遍历 */
/* 左子树->右子树-> 根节点
D E F B H G I C A */
void PreOrderTraversal(BinTree BT)
{
if(BT){
PreOrderTraversal(BT->Left);
PreOrderTraversal(Bt->Right);
printf("%d",BT->Data);
}
}