文章目录

  • 基本概念
    • 二叉树的五种状态
  • 几种特殊的二叉树

基本概念

二叉树是n(n>=0)个结点的有限集合:

  1. 或者为空二叉树,即n=0
  2. 或者由一个根结点和两个互不相交的被称为根的左子树右子树组成。左子树和右子树分别是一棵二叉树

特点:

  1. 每个结点至多有两颗子树
  2. 左右子树不能颠倒(二叉树是有序树

二叉树的五种状态

空二叉树

左右子树都有


只有左子树

只有右子树


只有根结点

几种特殊的二叉树

满二叉树

一 颗 高 度 为 h , 且 含 有 2 h − 1 个 结 点 的 二 叉 树 一颗高度为h,且含有2^h-1个结点的二叉树 一颗高度为h,且含有2h−1个结点的二叉树


特点:

  1. 只有最后一层才有叶子结点
  2. 不存在度为1的结点
  3. 按层序从1开始编号,结点i的左孩子为2i,右孩子为2i+1,结点i的父节点为[i/2]

完全二叉树

当且仅当其每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树


特点:

  1. 只有最后两层才有可能有叶子结点
  2. 最多只有一个度为1的结点
  3. 同上③
  4. i<=[n/2]为分支结点,i>[n/2]为叶子结点

二叉排序树

一颗二叉树或是空二叉树,或者是具有如下性质的二叉树:

  1. 左子树上所有结点的关键字均小于根结点的关键字
  2. 右子树上所有结点的关键字均大于根结点的关键字
  3. 左子树和右子树又各是一颗二叉排序树

二叉排序树可用于元素的排序、搜素

平衡二叉树

树上任一结点的左子树和右子树的深度之差不超过1

二叉树的定义和基本术语相关推荐

  1. c++用二叉树表示代数表达式_C语言:数据结构-二叉树的定义和基本术语和二叉树的性质...

    二叉树的定义和基本术语 (1)二叉树的定义 二叉树(Binary Tree):每个结点至多有两棵子树,且子树有左.右之分.在二叉树中不含度数大于2的结点. 二叉树的递归定义为:二叉树或者是一棵空树,或 ...

  2. 二叉树的定义 性质 及存储结构

    二叉树的定义和基本术语 二叉树是n个数据元素的有限集,它或为空集(n=0),或者含有唯一的称为根的元素,且其余元素分别分成两个互不相交的子集,每个子集自身也是一颗二叉树,分别称为根的左子树和右子树.集 ...

  3. 树和二叉树定义、基本术语和性质

    树的定义和基本术语 •树:是一类重要的非线性数据结构,是以分支关系定义的层次结构. •根:树(tree)是n(n>=0)个结点的有限集T,对于非空树,其中有且仅有一个特定的结点,称为树的根(ro ...

  4. 数据结构之树和二叉树的定义和性质

    树和二叉树的定义和性质 树 思维导图: 树的基本定义: 树的基本术语: 树的性质: 二叉树: 二叉树的定义: 二叉树的5中形态: 二叉树的几种特殊形态: 满二叉树: 完全二叉树: 二叉排序树: 平衡二 ...

  5. 数据结构笔记(十八)-- 树的定义和基本术语

    树的定义和基本术语 一.树 二.树的分类 森林:.n个互不相交的树的集合 一般树:任意一个节点的子节点的个数都不受限制 一般二叉树:任意一个节点的子节点的个数都是2个,且这2个子节点的位置不可以更改 ...

  6. java数据结构之二叉树的定义和递归实现

    定义 最多有两棵子树的有序树,称为二叉树.二叉树是一种特殊的树. 递归定义:二叉树是n(n>=0)个有限结点构成的集合.N=0称为空二叉树:n>0的二叉树由一个根结点和两互不相交的,分别称 ...

  7. 二叉树的定义、性质、存储

    二叉树的定义 二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree).二叉树常被 ...

  8. 6.2 二叉树的定义、性质与存储结构

    0. 引子 1. 二叉树的定义 2. 二叉树的性质 3. 二叉树的存储结构 (1) 树的表示法 通常,像树.图.栈.队列等数据结构下数据的存储表示,都是基于线性表.线性表有两种结构:[顺序存储结构和链 ...

  9. 数据结构之二叉树的定义和性质

    通过上一节讲解,我们知道通用树结构是采用双亲孩子表示法模型建立的.每个结点都有一个指向其双亲的指针,每个结点都有 若干个指向其孩子的指针.如下图: 整体实现起来比较复杂,今天我们来讲一下另一种树结构模 ...

最新文章

  1. 【swjtu】数据结构实验3_基于循环队列的排队买票模拟程序
  2. eclipse 自动生成代码
  3. 5G NGC — 关键技术 — 网络切片 — 切片的选择
  4. QT关于全局变量的申请以及使用,所有class可用同一个变量
  5. 6.Hibernate综述
  6. Spring和Struts2整合
  7. 开源框架:CocoaPods 安装学习教程
  8. 路径.git下的文件
  9. 图像目标检测(Object Detection)原理与实现(二)
  10. AI 秒杀人类!OpenAI 击败 DOTA2 世界冠军 OG
  11. PAT (Basic Level) Practice1026 程序运行时间
  12. Ubuntu18.04设置开机启动脚本__NVIDIA Jetson xavier NX设置开机启动脚本
  13. AE光效效果插件:Trapcode Shine
  14. 海贼王燃烧意志服务器维修,海贼王燃烧意志刷经验
  15. 二分法和黄金分割法的区别和联系,附Python代码
  16. 研究发现:“帽子”越多越高的教师,对研究生越没有用
  17. 《Maven官方文档》Maven 开发
  18. ACS 2017中国汽车CIO峰会10月强势登陆上海
  19. Java八大基本数据类型-详解
  20. JS: break 终止循环 continue跳过循环体中不想执行的语句

热门文章

  1. (每日一练)强制类型转换和自动类型转换的区别
  2. oracle revoke 列_Oracle常见授权与回收权限——grant和revoke
  3. 今天新拉取得项目启动报错:No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
  4. 用java实现combin函数_Java并发工具类CompletableFuture教程与示例
  5. windos 8 虚拟光驱/硬盘技术
  6. css前缀匹配,CSS选择器子串
  7. 微信公众号的8种引粉方法
  8. Java 基础-三元表达式
  9. JMeter之响应断言
  10. jmeter断言(响应断言)