树的周边(一)树的概念

本文详细介绍了树这种层次性数据结构,包括树的基本概念、二叉树(满二叉树/完全二叉树)、最优二叉树(霍夫曼树)、次优二叉树以及几种重要的特殊树型:二叉查找树、平衡树(AVL树)和B树/B+树。特别提到了红黑树,它是关联数组实现的基础,插入和删除操作复杂但保持了O(log n)的时间复杂度。
摘要由CSDN通过智能技术生成

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 -(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值