二叉树的定义和基本术语
文章目录
- 基本概念
- 二叉树的五种状态
- 几种特殊的二叉树
基本概念
二叉树是n(n>=0)个结点的有限集合:
- 或者为
空二叉树
,即n=0 - 或者由一个
根结点
和两个互不相交的被称为根的左子树
和右子树
组成。左子树和右子树分别是一棵二叉树
特点:
- 每个结点至多有两颗子树
- 左右子树不能颠倒(二叉树是
有序树
)
二叉树的五种状态
空二叉树
∅
左右子树都有
只有左子树
只有右子树
只有根结点
几种特殊的二叉树
满二叉树
一 颗 高 度 为 h , 且 含 有 2 h − 1 个 结 点 的 二 叉 树 一颗高度为h,且含有2^h-1个结点的二叉树 一颗高度为h,且含有2h−1个结点的二叉树
特点:
- 只有最后一层才有叶子结点
- 不存在度为1的结点
- 按层序从1开始编号,结点i的左孩子为2i,右孩子为2i+1,结点i的父节点为[i/2]
完全二叉树
当且仅当其每个结点都与高度为h的满二叉树中编号为1~n的结点一一对应时,称为完全二叉树
特点:
- 只有最后两层才有可能有叶子结点
- 最多只有一个度为1的结点
- 同上③
- i<=[n/2]为分支结点,i>[n/2]为叶子结点
二叉排序树
一颗二叉树或是空二叉树,或者是具有如下性质的二叉树:
- 左子树上所有结点的关键字均小于根结点的关键字
- 右子树上所有结点的关键字均大于根结点的关键字
- 左子树和右子树又各是一颗二叉排序树
二叉排序树可用于元素的排序、搜素
平衡二叉树
树上任一结点的左子树和右子树的深度之差不超过1
二叉树的定义和基本术语相关推荐
- c++用二叉树表示代数表达式_C语言:数据结构-二叉树的定义和基本术语和二叉树的性质...
二叉树的定义和基本术语 (1)二叉树的定义 二叉树(Binary Tree):每个结点至多有两棵子树,且子树有左.右之分.在二叉树中不含度数大于2的结点. 二叉树的递归定义为:二叉树或者是一棵空树,或 ...
- 二叉树的定义 性质 及存储结构
二叉树的定义和基本术语 二叉树是n个数据元素的有限集,它或为空集(n=0),或者含有唯一的称为根的元素,且其余元素分别分成两个互不相交的子集,每个子集自身也是一颗二叉树,分别称为根的左子树和右子树.集 ...
- 树和二叉树定义、基本术语和性质
树的定义和基本术语 •树:是一类重要的非线性数据结构,是以分支关系定义的层次结构. •根:树(tree)是n(n>=0)个结点的有限集T,对于非空树,其中有且仅有一个特定的结点,称为树的根(ro ...
- 数据结构之树和二叉树的定义和性质
树和二叉树的定义和性质 树 思维导图: 树的基本定义: 树的基本术语: 树的性质: 二叉树: 二叉树的定义: 二叉树的5中形态: 二叉树的几种特殊形态: 满二叉树: 完全二叉树: 二叉排序树: 平衡二 ...
- 数据结构笔记(十八)-- 树的定义和基本术语
树的定义和基本术语 一.树 二.树的分类 森林:.n个互不相交的树的集合 一般树:任意一个节点的子节点的个数都不受限制 一般二叉树:任意一个节点的子节点的个数都是2个,且这2个子节点的位置不可以更改 ...
- java数据结构之二叉树的定义和递归实现
定义 最多有两棵子树的有序树,称为二叉树.二叉树是一种特殊的树. 递归定义:二叉树是n(n>=0)个有限结点构成的集合.N=0称为空二叉树:n>0的二叉树由一个根结点和两互不相交的,分别称 ...
- 二叉树的定义、性质、存储
二叉树的定义 二叉树是每个节点最多有两个子树的树结构.通常子树被称作"左子树"(left subtree)和"右子树"(right subtree).二叉树常被 ...
- 6.2 二叉树的定义、性质与存储结构
0. 引子 1. 二叉树的定义 2. 二叉树的性质 3. 二叉树的存储结构 (1) 树的表示法 通常,像树.图.栈.队列等数据结构下数据的存储表示,都是基于线性表.线性表有两种结构:[顺序存储结构和链 ...
- 数据结构之二叉树的定义和性质
通过上一节讲解,我们知道通用树结构是采用双亲孩子表示法模型建立的.每个结点都有一个指向其双亲的指针,每个结点都有 若干个指向其孩子的指针.如下图: 整体实现起来比较复杂,今天我们来讲一下另一种树结构模 ...
最新文章
- 【swjtu】数据结构实验3_基于循环队列的排队买票模拟程序
- eclipse 自动生成代码
- 5G NGC — 关键技术 — 网络切片 — 切片的选择
- QT关于全局变量的申请以及使用,所有class可用同一个变量
- 6.Hibernate综述
- Spring和Struts2整合
- 开源框架:CocoaPods 安装学习教程
- 路径.git下的文件
- 图像目标检测(Object Detection)原理与实现(二)
- AI 秒杀人类!OpenAI 击败 DOTA2 世界冠军 OG
- PAT (Basic Level) Practice1026 程序运行时间
- Ubuntu18.04设置开机启动脚本__NVIDIA Jetson xavier NX设置开机启动脚本
- AE光效效果插件:Trapcode Shine
- 海贼王燃烧意志服务器维修,海贼王燃烧意志刷经验
- 二分法和黄金分割法的区别和联系,附Python代码
- 研究发现:“帽子”越多越高的教师,对研究生越没有用
- 《Maven官方文档》Maven 开发
- ACS 2017中国汽车CIO峰会10月强势登陆上海
- Java八大基本数据类型-详解
- JS: break 终止循环 continue跳过循环体中不想执行的语句
热门文章
- (每日一练)强制类型转换和自动类型转换的区别
- oracle revoke 列_Oracle常见授权与回收权限——grant和revoke
- 今天新拉取得项目启动报错:No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
- 用java实现combin函数_Java并发工具类CompletableFuture教程与示例
- windos 8 虚拟光驱/硬盘技术
- css前缀匹配,CSS选择器子串
- 微信公众号的8种引粉方法
- Java 基础-三元表达式
- JMeter之响应断言
- jmeter断言(响应断言)