树的遍历和图的遍历的异同

一、认识的理清

1、 应该认识到“深度优先”和“广度优先”是算法思想,而递归是实现“深度优先”的一种方法(深度优先可以非递归实现);

2、 深度优先搜索也叫深度优先遍历(DFS,Depth_Fisrt_Search);

3、 遍历的目的是把节点按照一定的规则排成线性序列(存储的时候线性存储,但画图表现时并非如此),访问节点时按照此顺序访问。

4、 遍历是一个过程,这过程中带有相应的操作,比如判断、求解问题啥的。

二、图的遍历

概念:从图的某一点出发访问其余顶点,且使得每一个顶点仅仅被访问一次,这过程叫图的遍历。

1、深度优先遍历:不到黄河不死心,死心后返回;关键在于所有点都被访问一遍,可能有回退(一般都有)。

2、广度优先遍历:之前我以为同层之间的相邻节点必须有边,但是这理解是错误的,实际上像树的层次遍历,只要求把其所有子节点入队,不要求相邻子节点之间有边。

三、树的遍历

1、前序、中序、后序遍历,其实都采用的是DFS思想,DFS思想常用递归实现;

2、层次遍历,采用的是BFS思想,采用队列这种数据结构实现。

    原文作者:数据结构之图
    原文地址: https://blog.csdn.net/oqqhutu12345678/article/details/52648654
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞