二叉树的遍历
所谓二叉树的遍历,是指按某条搜索路径访问树中的每个结点,使得每个结点均被访问一次,而且只被访问一次。
由二叉树的递归定义可知,遍历一颗二叉树便要决定对根结点N,左子树L和右子树R的访问顺序。按照先遍历左子树再遍历右子树的原则,常见的遍历次序有先序(NLR)、中序(LNR)、后序(LRN)三种遍历算法。
先序遍历
先序遍历的操作过程为:
如果二叉树为空,什么也不做。否则:
1.访问根结点
2.先序遍历左子树
3.先序遍历右子树
对应的递归算法如下:
void PreOrder(BiTree T){
if(T!=NULL){
visit(T); //访问根结点
PreOrder(T->lchild); //递归遍历左子树
PreOrder(T->rchild); //递归遍历右子树
}
}
</