二叉树遍历

 

代码
//二叉链表节点类型

typedef 
struct BiTnode
{
    
int    data;
    
struct BiTnode *lchild,*rchild;

}BiTnode,
*BiTree;

//二叉树的先序遍历,先访问根节点,先序遍历根节点左子树,先序遍历二叉树右子树

void PreOrder(BiTree root)
{
    
if(NULL==root)
        
return;
    
else
    {
        printf(
"%d",root->data);
        PreOrder(root
->lchild);
        PreOrder(root
->rchild);
    }
}

//二叉树的中序遍历,中序遍历根节点左子树,访问根节点,中序遍历二叉树右子树

void InOrder(BiTree root)
{
    
if(NULL==root)
        
return;
    
else
    {
        PreOrder(root
->lchild);
        printf(
"%d",root->data);
        PreOrder(root
->rchild);
    }
}

//二叉树的后序遍历,后序遍历根节点左子树,后序遍历二叉树右子树,访问根节点

void PostOrder(BiTree root)
{
    
if(NULL==root)
        
return;
    
else
    {
        PreOrder(root
->lchild);
        PreOrder(root
->rchild);
        printf(
"%d",root->data);
    }
}

 

 

posted @ 2010-03-14 23:58  独奏者  阅读(589)  评论(0编辑  收藏  举报