计算机数据结构中树的遍历

 我来答
kevin887766
2013-11-15
知道答主
回答量:9
采纳率:100%
帮助的人:3.4万
展开全部
/*树的3种最重要的遍历方式分别称为前序遍历、中序遍历和后序遍历。
以这3种方式遍历一棵树时,若按访问结点的先后次序将结点排列起来,就可分别得到树中所有结点的前序列表,中序列表和后序列表。*/
/*设T它以n为树根,树根的子树从左到右依次为T1,T2,..,Tk,那么有:
对T进行前序遍历是先访问树根n,然后依次前序遍历T1,T2,..,Tk。
对T进行中序遍历是先中序遍历T1,然后访问树根n,接着依次对T2,T3,..,Tk进行中序遍历。
对T进行后序遍历是先依次对T1,T2,..,Tk进行后序遍历,最后访问树根n。*/
/*二叉树的定义*/
struct BiTNode{ 
    ElemType data;  
    struct BiTNode *lchild; 
    struct BiTNode *rchild; 
}BiTree;
/*以下均为递归算法*/
/*前序遍历算法(PreOrderTraverse)*/ 
Status PreOrderTraverse(BiTree T,int(* visit)(unsignedint a))
{     
    if(T){      
    visit(T->data); 
    PreOrderTraverse(T->lchild,visit);      
    PreOrderTraverse(T->rchild,visit); 
    }     
    return OK;  
}
/*中序遍历算法(InOrderTraverse)*/ 
Status InOrderTraverse(BiTree T,int (* visit)(unsignedint a))
{     
    if(T){      
    InOrderTraverse(T->lchild,visit);      
    (* visit)(T->data); 
    InOrderTraverse(T->rchild,visit); 
    }     
    return OK;  
}
/*后序遍历算法(PostOrderTraverse)*/ 
Status PostOrderTraverse(BiTree T,int(* visit)(unsignedint a))
{     
    if(T){      
    PostOrderTraverse(T->lchild,visit);      
    PostOrderTraverse(T->rchild,visit);      
    (* visit)(T->data); 
    }    
    return OK;  
}
老肖的经验
2013-11-15 · TA获得超过438个赞
知道小有建树答主
回答量:177
采纳率:100%
帮助的人:118万
展开全部
你应该是说二叉树吧,它的遍历分为前序遍历,中序遍历,后序遍历。
我假设树中存储的是字符,我们遍历并输出,给出示例代码:
/*tree的前序遍历*/
int PreTrav(Tree T)
{
if(T==NULL)return 0;
printf("%c",T->Value);
PreTrav(T->Left);
PreTrav(T->Right);
return 0;
}

/*tree的中序遍历*/
int InTrav(Tree T)
{
if(T==NULL)return 0;
InTrav(T->Left);
printf("%c",T->Value);
InTrav(T->Right);
return 0;
}

/*tree的后序遍历*/
int PosTrav(Tree T)
{
if(T==NULL)return 0;
PosTrav(T->Left);
PosTrav(T->Right);
printf("%c",T->Value);
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
章氏SaiKouDa
2013-11-21 · TA获得超过212个赞
知道小有建树答主
回答量:340
采纳率:0%
帮助的人:208万
展开全部

玩的开心。。。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
荒生失走
2013-11-15
知道答主
回答量:22
采纳率:100%
帮助的人:8.7万
展开全部
深度优先广度优先?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2021-01-05 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.2亿
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式