遍历图表Vs遍历树

时间:2009-03-26 21:40:44

标签: tree graph-theory

遍历图表的函数是否同样可以遍历树?

2 个答案:

答案 0 :(得分:13)

树只是一种特殊类型的图形,称为有向非周期图形,所以是...广度优先和深度首先遍历两者都在树上工作。

我可以写出第一次遍历的广度和深度之间差异的详细解释,但我可能会弄错(我不是一个沉重的comp-sci家伙)。

可以说第一遍遍的广度和深度之间的唯一区别是处理顶点的顺序。广度首先你可以想到将顶点添加到“待处理”队列。首先,您可以将深度视为将“顶点”添加到“待处理”堆栈。当处理顶点时(在它们被添加到它们各自的数据结构之后),您出列或弹出堆栈以获得要处理的下一个顶点。深度优先遍历的巧妙版本使用递归来处理顶点,而不是将它们添加到堆栈中。

我不知道这是否有用......

快速谷歌搜索(我不知道它是广度还是深度)找到this,这似乎很好地描述了BFS和DFS之间的差异。如果你想更深入地阅读,我也可以推荐Steve Skiena的The Algorithm Design Manual

答案 1 :(得分:2)

可以遍历一般图形的函数对于遍历树可能是过度的,因为在纯树中,您不必检查周期。所以它会起作用,但也会更简单。