遍历二叉树

废话不多说,直接代码~~
先来一个二叉链表结点结构定义:

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~~

你可能感兴趣的:(二叉树,遍历)