先序遍历
操作过程
先序遍历(PreOrder)的操作过程如下:
若二叉树为空,则什么也不做;
若二叉树非空:
访问根结点;
先序遍历左子树;
先序遍历右子树。
代码
typedef struct BiTNode{
ElemType data;
struct BiTNode *lchild, *rchild;
}BiTNode, *BiTree;
//先序遍历
void PreOrder(BiTree T){
if(T!=null){
visit(T); //访问根节点
PreOrder(T->lchild); //递归遍历左子树
PreOrder(T->rchild); //递归遍历右子树
}
}
中序遍历
操作过程
中序遍历(InOrder)的操作过程如下:
- 若二叉树为空,则什么也不做;
- 若二叉树非空:
- 中序遍历左子树
- 访问根结点
- 中序遍历右子树