二叉树树的遍历
树的遍历
在计算机科学里,树的遍历指按照某种规则,不重复地访问树的所有节点的过程。具体的访问操作可能是检查节点的值、更新节点的值等。不同的遍历方式,其访问节点的顺序是不一样的。
因为树是图的一个子集,因此,树的遍历,也属于图遍历的子集。图遍历的原则主要有深度优先和广度优先两种。
这两大遍历原则对于树也同样适用。又因为有根树是树的一种,二叉树是有根树的一种,二
叉树的遍历也分为深度优先和广度优先两种。
不过在实际应用中,对二叉树而言,深度优先用得更多。
下面我们具体讲一下二叉树的几种遍历方式。
深度优先遍历二叉树的算法又有分为三种:先序遍历(Pre-OrderTraversal),中序遍历(In-OrderTraversal)和后序遍历(Post- Order Traversal)。
这里的先、中和后所指向的主体是什么呢?是根节点。
先、中、后序遍历实际上是先根序,中根序和后根序遍历。
这三种算法的区别就在于:在访问一棵树的时候,是先访问根节点,在「半截/中间」访问根节点,还是在最后访问根节点。
但无论那种遍历,都要:
把一棵树拆成左子树、右子树和根三个部
分;
再将左右子树分别作为两棵树划分左右子树和根,如此层层深入下去;
直到一棵子树只有一个节点为止。
二叉树的深度优先遍历算法