近期由于需要重拾数据结构,然后就遇到了二叉树的遍历,众所周知,二叉树的遍历有三种:先序、中序和后序。根据其中两种遍历顺序的组合基本就可以推导出原来二叉树的样子(排除个别特殊的先序和后序的组合)。
下面我们就来总结下如何推导。
<一>先序和中序
个人觉得只要给出的遍历顺序有先序就很好办,按照先序的顺序逐个安排下元素的位置(以先为主,辅以中序),基本图形就出来。下面举个例子吧:
(1)先序:-+a*b-cd/ef 中序:a+b*c-d-e/f
首先根节点一定是-,然后看-在中序中不是最后,说明-既有左子树也有右子树,那么+就是-的左孩子,然后就是a,a在中序中在+的左边,所以a是+的左孩子,
<二>中序和后序
(1)中序:DBGEHJACIF 后序:DGJHEBIFCA
算了,看完有空再一起整理