一行talk C栗子吧(第四十回:C语言实例-遍历二叉树)

一起talk C栗子吧(第四十回:C语言实例--遍历二叉树)

各位看官们,大家好,上一回中咱们说的是创建一棵二叉树的例子,这一回咱们说的例子是:遍历二叉树。闲话休提,言归正转。让我们一起talk C栗子吧!


看官们,遍历二叉树其实就是从二叉树中的某个结点开始,沿着一个方向走,直到走完二叉树中所有的结点为止。依据走的方向不同,遍历的方法也不同。常见的遍历方法有以下三种

  • 前序遍历法:先从根结点开始走,然后走该根结点左边的孩子,最后走该结点右边的孩子。
  • 中序遍历法:先从左边的孩子开始走,然后走该孩子的根结点,最后走该孩子右边的兄弟。
  • 后序遍历法:先从左边的孩子开始走,然后该孩子右边的兄弟,最后走该孩子的根结点。

大家对比一下这三种遍历方法就能发现,“前中后”其实说的是根结点在遍历过程中的顺序。比如“前”就表示在遍历过程中最先走根结点。我们还使用上一回中二叉树的图,如下所示:

一行talk C栗子吧(第四十回:C语言实例-遍历二叉树)

使用三种遍历方法遍历该二叉树的结点如下:

前序遍历法:A B D F C E G H  
中序遍历法:D F B A C G E H 
后序遍历法:F D B G H E C A

下面是程序运行的结果,我们可以看到,运行结果完全符合我们的要求:

Create a Binary Tree 
PreOder Traverse a Binary Tree 
A B D F C E G H 
InOrder Traverse a Binary Tree 
D F B A C G E H 
PostOrder Traverse a Binary Tree 
F D B G H E C A 
Destroy a Binary Tree 

看官们,正文中就不写代码了,详细的代码放到了我的资源中,大家可以点击这里下载使用。在例子中我们使用的了上一回的代码,除了遍历的代码是新添加的外,其它的代码都一样。

各位看官,关于遍历二叉树的例子咱们就说到这里。欲知后面还有什么例子,且听下回分解

版权声明:本文为博主原创文章,未经博主允许不得转载。