有一段时间没有看数据结构了,感觉很多都忘了,(骨子里貌似不怎么记得住啊,233333).
(前中后根,可以把根深深记住,那么左右子树是固定的,而根就是先 中 后)
前序(先根)遍历:
①访问根结点 ②遍历左子树 ③遍历右子树 (根 左 右) ④循环类似继续搞
(访问根结点:A --- 遍历左子树 --- 访问根结点:B --- 继续 --- D --- E --- C --- F)
ABDECF
中序(中根)遍历:
①先左子树 ②根 ③右子树
(访问左子树--- 继续左---D --- 根 --- B --- E --- A --- F ---C)
DBEAFC
后序(后根)遍历
①先左子树 ②再右子树 ③再根
(访问左子树---再左---D---右---E---B---F---null---C---A)
DEBFCA
---------------------------------------------------------------------
根据先中后序,我们极大程度上能够去确认根在哪里,而且,通常通过两种遍历能够确定一个唯一的二叉树。
----------
例:
二叉树遍历,前序是ABDEGCFH,中序是DBGEACHF,后序是()。
- GEDHFBCA
- DGEBHFCA
- ABCDEFGH
- ACBFEDHG
分析:B
根据两个可以确定一颗二叉树,首先根据前根或者中序,我们知道A是root,DBGE是左子树,CHF是右子树,继续根据前序和中序特点就可以确定出来了,左子树,比较方便,右子树,稍微思考或者尝试一下,就可以画出符合的了。
(PS:写这个算是给自己一个记忆吧,有时候习惯了查询,真正记忆的东西少了很多)