二叉树的遍历

二叉树的递归遍历与层次遍历
摘要由CSDN通过智能技术生成

二叉树
    1)概念
     二叉树(Binary Tree)是n(n≥0)个节点的有限集合,它或者是空集(n=0),或者是由一个根节点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成;
    2)性质
        二叉树第i(i≥1)层上的节点最多为2i-1个。
        深度为k(k≥1)的二叉树最多有2k-1个节点。
        在任意一棵二叉树中,树叶的数目比度数为2的节点的数目多一。
        总节点数为各类节点之和:n = n0 + n1 + n2  
        总节点数为所有子节点数加一:n = n1 + 2*n2 + 1
                故得:n0 = n2 + 1 ;
        满二叉树 :深度为k(k≥1)时有2k-1个节点的二叉树。
        完全二叉树 :只有最下面两层有度数小于2的节点,且最下面一层的叶节点集中在最左边的若干位置上。
        具有n个节点的完全二叉树的深度为
                 (log2n)+1或『log2(n+1)。
    3)遍历(重点)
        递归遍历:先序 中序 后序;
        层次遍历:非递归遍历;

代码实现:

二叉树的函数声明:

#ifndef TREE_H
#define TREE_H
typedef int tree_t;
//二叉树结点类型定义
typedef struct node{
    tree_t data;
    struct node *lchild;//左节点指针
    struct node *rchild;//右节点指针
}Tree_t;

Tree_t *bitree_is_create(int i, int n);
void preorder(Tree_t *root);
void inorder(Tree_t *root);
void postorder(Tree_t *root);
void noorder(Tree_t *root);
#endif

 二叉树的函数实现:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值