树和森林的遍历

目录

一、树的先根遍历

二、树的后根遍历(深度优先遍历)

三、树的层次遍历(广度优先遍历)

四、森林的遍历

1、先序遍历森林

2、中序遍历(这么叫是因为对标二叉树的中序遍历)

五、小结:

下一篇: 二叉排序树


一、树的先根遍历

若树非空,先访问根结点,再依次对每棵子树进行先根遍历

伪代码描述

void PreOrder(TreeNode *R)

{

if(R!=NULL){

visit(R);

while(R还有下一个子树T)

PreOrder(T);

}

}

其实与这棵树对应的二叉树的先序序列相同

 

二、树的后根遍历(深度优先遍历)

void PreOrder(TreeNode *R)

{

if(R!=NULL){

while(R还有下一个子树T)

PreOrder(T);

visit(R);

}

}

与对应二叉树的中序遍历相同

 

三、树的层次遍历(广度优先遍历)

1、若树非空,则根结点入队

2、若队列非空,队头元素出队并访问,同时将该元素的孩子依次入队

3、重复2直到队列为空

 

四、森林的遍历

1、先序遍历森林

若森林非空,则按如下规则进行遍历

访问森林中第一棵的根结点

先序遍历第一棵树中根结点的子树森林

先序遍历除去第一棵树之后剩余的树构成的森林

 

效果等同于依次对各个树进行先根遍历

也可以层次栈开展开

 

还可以把森林转化为二叉树,在先序遍历

 

2、中序遍历(这么叫是因为对标二叉树的中序遍历)

若森林非空则如下遍历

中序遍历森林中第一棵树的根结点的子树森林

访问第一棵树的根结点

中序遍历除去第一棵树之后剩余的树构成的森林

等同于各个子树执行后根遍历

 

五、小结:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值