二叉树的遍历

1、先序遍历

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

  (1)ABC

  (2)A(BD)(CE)

  (3)A(B(DF))(C(EGH))
  
  2、中序遍历

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

  (1)BAC

  (2)(DB)A(CE)

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

  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 ); /*最后访问当前节点*/

  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值