1、树型结构是一类非常重要的非线性结构,
    树型结构为:分支结构、一对多、层次结构

2、树(tree)是n(n>=0)个结点的有限集合T,若n=0时称为空树,否则:
    (1)有且只有一个特殊的称为树的根(root)结点;根是入口
    (2)若n>1时,其余的结点被分为m(m>0)个互不相交的子集T1,T2,T3..,其中每个子集本身又是一棵树,称其为根的子树

3、树的定义:树的递归定义,即用树来定义树,而只有一个结点的树必定仅由根组成(树只有一个根,根是树的入口)

4、树的组成元素:结点
    结点(node):一个数据元素及其若干指向其子树的分支
    结点的度(degree):结点所拥有的子树的棵数
    树的度:树中结点度的最大值

叶子(终端)结点:树中度为0的结点
    非叶子(非终端、分支)结点:度不为0的结点
    分支结点又称内部结点

孩子结点:一个结点的子树的根称为该结点的孩子结点或子节点
    双亲结点:该结点是其孩子结点的双亲结点或父节点
    兄弟结点:同一双亲结点的所有子节点
    堂兄弟结点:双亲结点在同一层上,且不是兄弟结点的所有结点
    
    层次:规定树中根结点的层次为1,其余结点的层次等于其双亲结点的层次加1
    若某结点在第i层,则其子节点在第i+1层
    
    结点的层次路径:从根结点开始,到达某结点p所经过的所有结点称为结点p的层次路径(有且只有一条)
    结点层次:从根开始定义起,根为第一层,跟的孩子为第二层,以此类推

p的祖先:结点p的层次路径上的所有结点(p除外)
    结点的子孙结点:一某一结点为根的子树中的任意结点

树的深度:树中结点的最大层次值,又称树的高的)
    森林:是m(m>=0)棵互不相交的树的集合。显然,若将一棵树的根结点删除,剩余的子树就构成了森林。

判断有序树和无序树:交换子树的顺序,是否是一个树

5、二叉树:是n(n>=0)个结点的有限集合。若n=0时称为空树,否则:
    (1)有且只有一个根结点
    (2)二叉树是有序的
    (3)二叉树最多两个子树

6、二叉树的5种形态:空二叉树、单结点二叉树、左子树为空、右子树为空、左右子树都不空

7、二叉树性质:
    1)在非空二叉树中,第i层上至多有2的i-1次幂个结点(i>=1)
    2)深度为k的二叉树至多有2的k次幂-1个结点
    3)对任何一棵二叉树,若其叶子结点数为n0,度为2的结点数为n2,则n0=n2+1

8、满二叉树:每层都是满的
    对满二叉树连续编号:应层次从1开始,编号从1开始,“自上而下、自左而右”的原则进行

8、完全二叉树:与满二叉树对比
    1)对应位置、对应编号
    2)且不允许跳号

9、完全二叉树的性质:
    1)第i层,至多有2的i-1次幂个结点
    2)前k层,至多有(2的k次幂-1)个结点
    3)n0=n2+1
    4)深度为k,最多有(2的k次幂-1)个
    5)深度为k,那么前(k-1)层必须是满的,前(k-1)层有(2的k-1次幂-1)个,第k层至少有一个
    6)深度为k,所以叶子结点都出现在第k层或k-1层
    7)如果右子树最大层为j,则其左子树最大层为j或j+1
    8)n个结点的完全二叉树深度为:|log2n|+1
    9)i结点的双亲为i/2,左子树为2i,右子树为2i+1

10、只有完全二叉树才使用顺序结构

树和二叉树(知识整理)相关推荐

  1. 树和二叉树知识要点(期末必考)

    树和二叉树 什么是树? 树是由n(n>=0)个节点组成的有限集合(树中元素通常称为节点).n=0的树称为空树: 树形结构是非线性数据结构. 根:一个特殊的节点,它只有后继结点,没有前驱结点. 子 ...

  2. 《数据结构》树和二叉树代码整理(C语言实现)

    目录 前言: 先序创建二叉树 二叉树遍历(前|中|后 序)--递归(核心代码) 二叉树遍历(前|中|后|层 序)--非递归(核心代码) 后序 双栈法 点这里有个C++ 版,方法很多,只会C的话应该能看 ...

  3. 计算机二级二叉树基础知识,2017年计算机二级公共基础知识学习教程:树与二叉树...

    (六)树与二叉树 1.树的基本概念 树是一种简单的非线性结构.在树结构中,数据元素之间有着明显的层次结构.在树的图形表示中,用直线连接两端的结点,上端点为前件,下端点为后件. 在树结构中,每一个结点只 ...

  4. 【Python数据结构系列】☀️《树与二叉树-基础知识》——知识点讲解+代码实现☀️

    文章目录 数据结构之树和二叉树 第一部分 树和二叉树的基础知识 1.树和二叉树的定义 1.1 树的定义 1.2 树的基本术语 1.3 二叉树的定义 2.二叉树的性质和存储结构 2.1 二叉树的性质 2 ...

  5. 数据结构:树与二叉树(一) 树的基本知识

    这篇文章给大家简单讲一下树. 1.树逻辑结构 (1)树(Tree)是一个非空的有限元素的集合,元素之间有如下关系:有且仅有一个特殊元素,它没有前驱(称为树根Root),其余元素都有且仅有一个前驱元素, ...

  6. 计算机二级C语言公共基础知识,以及习题总结(二)树和二叉树

    二级C语言公共基础知识,以及习题总结(一) 跳转 二级C语言公共基础知识,以及习题总结(二)树和二叉树 跳转 二级C语言公共基础知识,以及习题总结(三)查找和排序 跳转 二级C语言公共基础知识,以及习 ...

  7. excel 进行二叉树_软考 软件设计师考点整理:树与二叉树

    [考法分析] 1.本知识点的主要考查形式有:对数与二叉树的一些概念和特性的描述,判断其正误:对于特殊的二叉树(平衡树.哈弗曼树.满二叉树.排序树等)定义.特性的描述判断正误.或根据题干描述构造特殊的二 ...

  8. 安卓高级面试知识整理

                                                    安卓高级面试知识整理 Android 四大组件:这是一份全面 & 详细的Activity学习指南 ...

  9. 清明自习-部分知识整理

    清明自习-部分知识整理 遍历 ​ 所谓遍历(Traversal),是指沿着某条搜索路线,依次对树(或图)中每个节点均做一次访问.访问结点所做的操作依赖于具体的应用问题, 具体的访问操作可能是检查节点的 ...

  10. 2020小红书校招题目知识整理——哈夫曼编码

    2020小红书校招题目知识整理--哈夫曼编码 哈夫曼编码 哈夫曼编码的目的就是数据压缩,加密解密,将出现频率低的放在二叉树的靠最下面的层,从而使频率高的能被更快的找到,实现数据压缩的功能 主要的编码过 ...

最新文章

  1. 数据结构:基数排序(Radix sort)
  2. 不仅仅是浏览器 走近Chrome开发人员工具
  3. [SPOJ DQUERY] D-query(树状数组,离线)
  4. Node.js Stream - 基础篇
  5. jquery form java_springmvc利用jquery.form插件异步上传文件示例
  6. docker中使用的镜像加速器可以自己生成
  7. 19. Django进阶:分页
  8. 手机输入法哪家好用?用户目前最喜爱这4款,有你正在使用的吗
  9. Unknown host ‘raw.githubusercontent.com‘. You may need to adjust the proxy settings in Gradle
  10. iptables中snat、dnat、masquerade
  11. STM32单片机编译器Keil环境配置教程
  12. Python 比较日期字符串与当前日期的日期差
  13. fread和 fgets的区别:
  14. yolov5 6.1官方模板TensorRT加速保姆级图文教程
  15. 修改浏览器User-Agent
  16. Go的宕机与宕机恢复
  17. 理解RabbitMQ中的AMQP模型,知乎上已获万赞
  18. Python之集合相关操作
  19. spring2.5.6整合hibernate3.3.2注解示例-第一节
  20. EasyExcel 使用和背景颜色样式(3.0以上的版本)

热门文章

  1. 爱情八十课,背叛也活该
  2. 2022 剑桥 AI 全景报告出炉:扩散模型是风口,中国论文数量为美国的 4.5 倍
  3. 如何在IDEA中配置启用npm命令
  4. 【保姆级】论文阅读与分析《Learning Heterogeneous Knowledge Base Embeddings for Explainable Recommendation》
  5. 逻辑谬误收集,以后辩论用
  6. Linux dmesg 命令 - 打印内核环形缓冲区
  7. SUMIF函数 countif函数
  8. 春节到了,程序员的对联页面是这样滴
  9. 使用merge into进行大数据量优化
  10. 用Python实现九九乘法表的几种方式,入门必备案例!超级简单!