二叉树的遍历
二叉树的遍历分为前序,中序,后序。这三种遍历都是一种递归思想的遍历。
这里有种题目,给出前序,中序可以还原出二叉树,给出后序,中序也可以还原出二叉树。
下面介绍具体的代码,在介绍具体的代码前,需要读者已经明白二叉树遍历的思想。首先我们来定义结点
//二叉树结点的数据类型
typedef char TElemType;
typedef struct BiTNode
{
TElemType data;//数据域
struct BiTNode *lchild, *rchild;//左右孩子指针域
}BiTNode, *BiTree;
接下来就是先序遍历操作
void PreOrderTraverse(BiTree T)
{
if(T==NULL)//树为空,递归终止
return;
else
{
visit(T);//访问根节点
PreOrderTraverse(T->lchild);//递归遍历左子树
PreOrderTraverse(T->rchild);//递归遍历右子树
}
}
与之类似,中序遍历与后序遍历只不过是访问根节点的次序不同而已,可以再代码基础上稍加更改得到。这里没有具体实现visit(BiTree T)函数。