树的周边(一)树的概念

1. 树

    树是一种层次性数据结构,其中第一层只有一个结点称根节点,根据节点的分支情况,结点可分为父节点与子节点,父节点可由多个子节点,但子节点只能有一个父节点。如果每个结点至多只能有两个子结点,则为常用的二叉树,如果有多于2个结点,加以其他限制条件,则可以构造B树或B+树等。
   树是一种非常重要的数据结构,在STL中map的底层即使用红黑树实现。最常用的树即二叉查找树。关于树的各种概念也是树的各种操作的基础。


2. 满二叉树/完全二叉树

    二叉树中根节点称第1层,易知第n层至多有2^(n-1)-1个结点。如果每一层节点都达到最大节点数,则称此树为满二叉树(Full Binary Tree)。如下:


    如果前n-1层均达到最大数量,且最后一层第n层的结点都位于树的左侧,则称此树为完全二叉树(Complete Binary Tree)。具有n个结点的完全二叉树的深度为⌊log2n⌋,对于结点i其左孩子为2i+1,右孩子为2i+2。(从结点0开始)。

题目1:对于一个有800个结点的完全二叉树来说,他有多少个叶子结点?
    一个K层满二叉树共有2^K-1个结点,故对完全二叉树来讲要求:2^K-1>=800;2^(k-1)-1<=800. K=10.故第K层有800-511=289个叶子结点,而在上一层中右边仍有若干叶子结点256 -(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值