这一节是关于二叉树的遍历的,常用的有四种遍历二叉树,分别为先序,中序,后序,层次遍历二叉树。利用我们上一节生成的二叉树举例,递归是我们比较常用的方法,看起来比较易懂,代码也比较优美。非递归算法则用另外一种方式对其进行实现。
递归算法:
先序遍历:根,左,右
中序遍历:左,根,右
后序遍历:左,右,根
层序遍历:会从根结点开始,从左到右,从上到下遍历每个结点,需要用到队列,会在非递归遍历中给出。
非递归算法:
先序遍历
中序遍历,
后序遍历,构造了一个结构体,并加入了L,R作为标记位,首先遍历左子树,将标记位都置为L。然后将栈顶的标记赋为R,这个时候并不将其输出,继续遍历他的右子树,如果没有右子树则输出值,继续遍历右子树。
层序遍历:
二叉树的排序方法还远远不止这些,本文中给出这些算法也只是给了一个开头,对于树算法的研究远远没有尽头。