树的相关知识-------全面解决树的问题
来源:互联网 发布:播音艺考生软件 编辑:程序博客网 时间:2024/06/03 13:02
1、树的相关知识
树的度:结点拥有的子树数称为结点的度 度为0的结点称之为叶结点或终端结点;
树的深度:从根结点开始,根结点所在层次为第一层,树中结点的最大层次称为树的深度或者高度;
2、二叉树
满二叉树:在二叉树中,如果所有的分支结点都存在左子树和右子树,并且所有的叶子节点都位于同一个层次,这样的二叉树为满二叉树
3、完全二叉树
对于一个树,有n个结点,按层序进行编号,如果编号为i的结点(i<=n)与同样深度的满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二叉树。
4、二叉树的性质
性质1:
二叉树的第i层上至多有pow(2,i-1)个结点
性质2:
深度为k的二叉树至多有pow(2,k) -1个结点
性质3:
对于任何一棵二叉树,度为0的结点个数为n0,度为2的结点个数为n2,那么n0=n2+1
性质4:
具有n个结点的完全二叉树深度为【log(n)】+1
性质5:
对于一棵n个结点的完全二叉树,其结点按层序编号,对任一个结点i(1<=i<=n)
(1)、如果i=1,则结点i为二叉树的根,无双亲结点
(2)、如果2i>n,则结点i无左孩子,否则其左孩子结点编号为2i
(3)、2i+1>n则结点i无右孩子,否则其右孩子结点编号为2i+1
5、二叉树的存储结构
二叉链表,每个结点最多有两个孩子,所以用两个指针域,一个数据域来表示二叉树中的结点。
typedef struct TreeNode{
ElementType data;
struct TreeNode *lchild,*rchild;
}S_TreeNode;
6、遍历二叉树
前序遍历 中序遍历 后序遍历
7、二叉排序树
又称为二叉查找树,它或者为空树,或者为具有以下性质的二叉树:
(1)、若它的左子树不空,则左子树所有结点的值均小于根结点的值;
(2)、若它的右子树不空,则右子树所有结点的值均大于根结点的值;
(3)、它的左右子树也为二叉排序树。
注意:构造一棵二叉排序树的目的并不是为了排序,而是为了提高 查找、插入、删除关键字的效率
8、平衡二叉树AVL
(1)、平衡二叉树是一种二叉排序树,空树或者树中每一个节点的左子树和右子树高度差至多为1
将二叉树上结点的左子树深度减去右子树深度 的值称为平衡因子BF,因此二叉树上所有结点的平衡因子只可能为-1,0,1
(2)、最小不平衡子树
距离插入结点最近,且平衡因子的绝对值大于1的结点为根的子树,我们称之为最小不平衡二叉树。
- 树的相关知识-------全面解决树的问题
- 树的相关知识
- 树的相关知识
- 很全面的二叉树相关操作
- R树的相关知识
- 全面解决Html页面缓存的问题
- 2016.7.16 树相关知识的复习
- fragment的知识和相关问题
- java 的全面知识体系
- 一步一步全面解决mysql+jsp的中文问题
- 全面解决电脑突然没声音的问题
- 相关reactjs的相关知识
- OPC的相关知识
- JDBC的相关知识
- 事务的相关知识
- 编译器的相关知识
- 编译器的相关知识
- OPC的相关知识
- win10 磁盘总是100%优化亲测
- 面试题 6: 重建二叉树
- 表单label与input对齐的方法
- 关系型数据库树形结构实现-物化路径模型
- centos安装及配置Mysql数据库
- 树的相关知识-------全面解决树的问题
- [java学习]Pattern和Matcher类学习
- 饿了么是如何做技术运营的
- 微信小程序延时操作
- c#-外部方法
- 微信小程序开发系列——3. 腾讯云服务器配置
- seo视频教程:怎么写网站标题(title)?
- 指针
- Hibernate知识点