文章目录
🏡作者主页:点击!
🤖数据结构专栏:点击!
⏰️创作时间:2024年12月16日13点20分
树
空树:节点数为0的树
非空树的特性:
- 有且仅有一个根节点
- 没有后继的结点称之为叶子节点(终端节点)
- 有后继的节点称为分支节点(非终端节点)
除了根节点外,任何一个节点都有且仅有一个前驱
子树:互不相交的有限集合树是一种递归定义的数据结构
- 节点的层次(深度)------从下往上数
- 节点的高度------从下往上数
- 树的高度(深度)------总共多少层
- 节点的度------有几个孩子(分支)
- 树的度------各节点的度的最大值
有序树:逻辑上看,树中的节点的各子树从左至右是有次序的,不能互换无序树:逻辑上看,树中的节点的各子树从左至右是无次序的,可以互换
森林:森林是m棵互不相交的树的集合
总结基本概念:节点、边、根节点、叶子节点、分支节点、子树
节点之间的关系:
- 节点之间的路径------只能从上往下
节点、树的属性
- 节点的度------节点的分支数
- 树的度------树中各节点的度的最大值
有序树VS无序树
- 逻辑上看,各子树是否有序,位置是否可互换
- 森林:由 m>=0 个互不相交的数组成森林
树的性质
树的度------各节点的度的最大值
任意节点的度<=m(最多m个孩子)
至少有一个节点度 = m(有m个孩子)
一定是非空树,至少有 m+1 个节点
m叉树------每个节点最多只能有m个孩子的树任意节点的度<=m(最多m个孩子)
允许所有节点的度都 < m
可以是空树
二叉树
- 满二叉树
- 完全二叉树
- 二叉排序树
- 平衡二叉树
二叉树是递归定义的数据结构
- 每个节点至多只能有两颗子树
- 左右子树不能颠倒(二叉树是有序树)
满二叉树特点:
- 只有最后一层有叶子节点
- 不存在度为1的节点
- 按层序从1开始编号,节点 i 的左孩子为 2i,右孩子为 2i+1,节点 i 的父节点为 i / 2
完全二叉树特点:
- 只有最后两层可能有叶子节点
- 最多只有一个度为 1 的节点
- 按层序从1开始编号,节点 i 的左孩子为 2i,右孩子为 2i+1,节点 i 的父节点为 i / 2
二叉排序树一颗二叉树或者是空二叉树,或者是具有如下性质的二叉树
二叉排序树可用于元素的排序、搜索
- 左子树上所有的关键字均小于根节点的关键字
- 右子树上所有的关键字均大于根节点的关键字
- 左子树和右子树又各是一颗二叉排序树
平衡二叉树------树上任一节点的左子树和右子树深度之差不超过1
性质树的节点数=总度数+1
存储结构------顺序存储二叉树的顺序存储中,一定要把二叉树的节点编号与完全二叉树对应起来
n个节点的二叉链表共有n+1个空链域
二叉树的顺序存储中,一定要把二叉树的节点编号与完全二叉树对应起来
Author:DC