在很多信息学竞赛中,关于树的遍历题目非常多,如果你无从下手,那么你就来看看这篇文章吧!保证让你学会关于树的遍历的方法与技巧!
此文章是作者呕心沥血之作,纯人工键盘打字思考。如果你觉得对你有帮助,那么就来给作者一个免费的赞和一个免费的收藏吧,谢谢啦!
那么废话不多说,直接上正题。
DFS家族
1)前序遍历
前序遍历,是非常标准的DFS(深度优先搜索),它非常简单实用,只需记住一个口号:根左右 即可。
具体实现是这样的:
有这样一棵树:
按照前序遍历的口号:根左右,进行遍历。
从根节点A开始,执行根左右中的根,输出A。
执行左,对B进行操作根左右(下文将简述为操作)中的根,输出根。
执行左,对D操作中的根,输出根(在这里是叶子)。
执行左,D没有左孩子。
执行右,D没有右孩子。
回到B,执行右,对E操作,输出根(在这里是叶子)。
执行左,E没有左孩子。
执行右,E没有右孩子。
B(A的左子树)已经被遍历完了,执行右,对C操作,输出根。
执行左,对F操作,输出根(在这里是叶子)。
执行左,F没有左孩子。
执行右,F没有右孩子。
回到C,执行右,对G操作,输出根(在这里是叶子)。
执行左,G没有左孩子。
执行右,G没有右孩子。
最终,这一棵树被遍历完了。
那么,前序遍历的结果就是:ABDECFG。
这就是前序遍历。
如果你觉得还是不怎么懂,那就看这个图片:
序号是第几个输出的,箭头是路径。
2)中序遍历
未完待续……正在更新ing……




