所以说,“Talk is cheap,show me your code”。

    现在我们首先考虑建立一棵二叉树:

    我们用这段代码来实现一个“从上至下,从左往后”依次为1 -》2 -》3 -》4 -》5 -》6的二叉树:

    9. 数据结构之树的代码实现(二) - 图1

    二叉树是已经建立了,紧接着就是如何遍历这颗二叉树了。遍历二叉树是指从根节点出发到按照某种顺序将树中的每一个结点都访问一次且每个结点只被访问一次。

    • 中序遍历

    前序遍历简单说就是先走根节点,然后前序遍历左子树,最后再前序遍历右子树,拿上面代码中构建的那个二叉树为例,遍历顺序就是:1-》2-》4-》5-》3-》6。

    中序遍历简单说就是从根节点开始(注意仅仅是开始,但不遍历根节点),先中序遍历左子树,然后遍历根节点,最后中序遍历右子树。拿上述二叉树为例,遍历顺序就是:4-》2-》5-》1-》6-》3。

    后续遍历简单说就是先从左子树开始,然后右子树,最后根节点。按照上述二叉树为例,遍历顺序就是:4-》5-》2-》6-》3-》1。

    “窝跟泥杠,泥邀是能看明白丧面杠的森么,窝就扶泥!”

    下面依然通过纸笔演练来搞定三种遍历方式,二叉树就采用程序中建立好的那个二叉树:

    • 前序遍历:一定记着,前序遍历的顺序是先遍历根节点,然后再前序遍历根节点的右子树,最后再前序遍历根节点的右子树!前序遍历中继续前序遍历!

    9. 数据结构之树的代码实现(二) - 图2

    • 后续遍历:我感觉我废话太多,不说了。

    其实,如果泥好好演练一遍以上内容,应该能感受到一股浓重的递归风扑面而来,代码感受一下:

    保存代码并运行,如下图:

    9. 数据结构之树的代码实现(二) - 图3

    二叉树的一些最最基础概念和操作就被我们用PHP用最粗暴的代码和方式实现了,不要骄傲,这才刚刚是个开始!