废话不多说,直接代码~~
先来一个二叉链表结点结构定义:
typedef struct BiTNode /*结点结构*/
{
int data; //结点数据
struct BiTNode,*lchild,*rchild; //左右孩子指针
}BiTNode,*BiTree;
- 前序遍历
//二叉树的前序遍历递归算法
void PreOrderTRaverse(BiTree T)
{
if(T == NULL)
return ;
printf("%d",T->data); //显示结点数据,也可改为其他对结点的操作
PreOrderTRaverse(T->lchild);//再先序遍历左子树
PreOrderTRaverse(T->rchild);//最后先序遍历左子树
}
- 中序遍历
//二叉树的中序遍历递归算法
void PreOrderTRaverse(BiTree T)
{
if(T == NULL)
return ;
PreOrderTRaverse(T->lchild);//再先序遍历左子树
printf("%d",T->data); //显示结点数据,也可改为其他对结点的操作
PreOrderTRaverse(T->rchild);//最后先序遍历左子树
}
- 后序遍历
//二叉树的中序遍历递归算法
void PreOrderTRaverse(BiTree T)
{
if(T == NULL)
return ;
PreOrderTRaverse(T->lchild);//再先序遍历左子树
PreOrderTRaverse(T->rchild);//最后先序遍历左子树
printf("%d",T->data); //显示结点数据,也可改为其他对结点的操作
}
over~~