数据结构 之 二叉树遍历 ------中序(根)遍历 和 后序(根)遍历(六)

提示:本篇章主要讲解数据结构中树的相关知识。


中序(根)遍历二叉树(LTR)

遍历口诀:(左根右)
中根遍历二叉树的递归定义为:若二叉树非空,则:
(1) 按中根次序遍历左子树;
(2) 访问根结点;
(3) 按中根次序遍历右子树;否则,遍历结束。

后序(根)遍历二叉树(LRT)

遍历口诀:(左右根)
后根遍历的递归定义为:若二叉树非空,则:
(1) 按后根次序遍历左子树;
(2) 按后根次序遍历右子树;
(3)访问根结点;

否则,遍历结束

如图所示:
在这里插入图片描述
中序遍历的顺序为:DBEGACF
后序遍历的顺序为:DGEBFCA
在这里插入图片描述
中序遍历为:dgbaechif
中序遍历为:gdbeihfca

中根遍历二叉树的递归算法 (重要)

将访问根结点的操作简化为输出根结点的值

void Inorder( BTNode * bt ){      
          /* 中序遍历算法以bt为根的二叉树 */      
          if (bt)     {          
          Inorder(bt->lchild) ;  /*中根遍历左子树*/            
          printf(bt->data) ;      /* 访问根结点 */
         Inorder(bt->rchild) ; /* 中根遍历右子树*/    
          }
     }

后序遍历二叉树的递归算法 (重要)

void Postorder(BTNode *bt {/*后序遍历二叉树bt的递归算法 */  
if (bt)   {      
 Postorder(bt->lchild);
 Postorder(bt->rchild);
 printf(bt->data);
    }
 }

二叉树的遍历练习

接下来看下图所示的完全二叉树,三种遍历二叉树的顺序如下,你会了吗?
在这里插入图片描述

选择题

1.在完全二叉树中,若一个结点没有(A ),则它必定是叶子结点。
A 左子结点 B右子结点   C兄弟    D左子结点或右子结点

2.在一个非空二叉树的中根遍历序列中,根结点的右边(D )
A 只有左子树上的所有结点   B  只有左子树上的部分结点
C 只有右子树上的部分结点   D  只有右子树上的所有结点

3.任何一棵二叉树的叶子结点在先根、中根和后根遍历序列中的相对次序(B)
A 发生变化  B不发生变化  C不能确定   D以上都不对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值