二叉树的初步认识

一、二叉树的概念

        二叉树是一种特殊的树形结构,主要的特点是每个结点最多有两个子树,且二叉树的子树有左右之分,次序不能颠倒。

        几种特殊的树:

        1.满二叉树

        高度为h,结点总数为2^h-1个结点的二叉树就是满二叉树,如果对满二叉树进行层序编号(自上而下,自左而右,从1开始),那么对于一个编号为i的结点,其双亲结点的编号为i/2向下取整,若有左孩子则编号为2i,右孩子为2i+1.

        2.完全二叉树

        其每个结点的编号与满二叉树的编号一一对应则是完全二叉树,各结点与其双亲结点和孩子结点的编号关系同上。

        3.二叉排序树

        其左子树上的关键字均小于根结点的关键字,其右子树上的关键字均大于根结点上的关键字,同时,左子树和右子树又各是一棵二叉排序树。

        4.平衡二叉树

        树中任意一个结点的左子树右子树高度之差的绝对值不超过1.

        5.正则二叉树

        树中每个分支结点(有孩子结点)都有两个孩子。

二、二叉树的性质

        1.非空二叉树上,叶结点的数量等于度为2的结点的数量再加1.

        2.非空二叉树的第k层最多有2^(k-1)个结点(k>=1).

        3.具有n个结点的完全二叉树的高度为log_{2}n+1向下取整。

三、二叉树的存储结构

        1.顺序存储结构

        二叉树用数组的形式进行存储,下标即为二叉树结点的编号。满二叉树和完全二叉树可使用该方式存储,既能节省空间,又能通过数组的下标体现结点在二叉树中的位置。但是对于一般的二叉树,该方法为了让结点的编号有逻辑,容易产生大量空结点,造成空间浪费。

        2.链式存储结构

        二叉树一般使用链式存储结构,通常二叉链表至少要包含:数据域data、左指针域lchild、右指针域rchild.

        在n个结点的二叉树中,含有n+1个空链域。在线索二叉树中会运用到空链域。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值