专栏中心

EEPW首页 > 专栏 > 关于二叉树的遍历

关于二叉树的遍历

发布人:mayer 时间:2009-09-08 来源:工程师 发布文章
关于二叉树的遍历

 

 

作者:曹忠明,华清远见嵌入式学院讲师。

二叉树遍历就是沿某条搜索路径周游二叉树,对树中的每一个节点访问一次且仅访问一次。由于二叉树的递归性质,遍历算法也是递归的。
二叉树的遍历有先序遍历、中序遍历和后序遍历。下面以(图一)中二叉树介绍一下这三种遍历。

(图一) 二叉树

1、先序遍历

       先序遍历的遍历规则是(中 前 后),中就是父节点,前就是左孩子,后是右孩子。既先访问当前节点,再访问左子树,最后访问右子树。这个过程是由根节点开始的一个递归的过程。以上面这个二叉树为例。他的遍历过程为:

(1)ABC

(2)A(BD)(CE)

(3)A(B(DF))(C(EGH))

算法实现为:
        PREORDER ( bitree *r)
        {
                if ( r = = NULL )
                        return ;                                      /*空树返回*/
                printf ( " %c ",r->data );                     /*先访问当前节点*/
                PREORDER ( r->lchild );                    /*再访问该节点的左子树*/
                PREORDER ( r->rchild );                   /*最后访问该节点右子树*/
        }

2、中序遍历

       中序遍历的遍历规则是(前 中 后),既访先问左子树,再访问当前节点,最后访问右子树。他的遍历过程为:

       (1)BAC

       (2)(DB)A(CE)

       (3)((DF)B)A(C(GEH)

       算法实现为:
        INORDER ( bitree *r)
        {
               if ( r = = NULL )
                return ;                                       /*空树返回*/
       INORDER ( r->lchild );                      /*先访问该节点的左子树*/
       printf ( " %c ",r->data );                     /*再访问当前节点*/
       INORDER ( r->rchild );                     /*最后访问该节点右子树*/
        }

3、后序遍历

       中序遍历的遍历规则是(前 后 中),既先访问当前节点的左子树,在访问当前节点的右子树,最后访问当前节点。他的遍历过程为:

       (1)BCA

       (2)(DB)(EC)A

       (3)((FD)B)((GHE)C)A

       算法实现为:
        POSTORDER ( bitree *r)
        {
               if ( r = = NULL )
                        return ;                                       /*空树返回*/
               POSTORDER ( r->lchild );                 /*先访问该节点的左子树*/
               POSTORDER ( r->rchild );                /*再访问该节点右子树*/
               printf ( " %c ",r->data );                     /*最后访问当前节点*/
        }

由上面一个例子可以看出,这是一个递归的过程,由根节点开始,递归的对各自的孩子结点按规则遍历。

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

可编程控制器EDA教程 10

视频 2010-01-21

XS110 UWB简要说明

资源下载 2007-02-09

Matter:智能家居和电动汽车连接更高效的未来

Vishay推出符合AEC-Q100标准的性能领先的超小型RGBIR颜色传感器

“更智能”的 IR 前置放大器具有 EMI 和光学稳健性

十年回顾: PowerQUICC通信处理器无处不在

可编程控制器EDA教程 09

视频 2010-01-21

大联大品佳集团推出基于Infineon产品的200W超薄壁挂电视电源方案

贸泽电子推出全新工业自动化在线资源

可编程控制器EDA教程 07

视频 2010-01-21

小区切换与功率控制讲义[中兴]

DigiKey将在2025年慕尼黑上海电子展上呈现创新演示、现场访谈和工作坊

Qorvo推出全新BLDC电机驱动器ACT72350

可编程控制器EDA教程 08

视频 2010-01-21

适合汽车应用的低功耗蓝牙SoC设计

零跑汽车选择QNX为全新智能电动SUV-B10提供智能化支持

通信设备常用电路图

村田中国亮相2025CMEF,助力共建智慧医疗新纪元

可编程控制器EDA教程 11

视频 2010-01-21
更多 培训课堂
更多 焦点
更多 视频

技术专区