2020-07-07
树
树:树是一种非线性数据结构,它由n(n>=1)个有限结点组成的一个具有层次关系的集合。
树的特点:每个结点具有0个或者多个子结点;
没有父节点的结点时根节点;
每一个非根结点有且只有一个父节点;
除了根结点,每个子结点都可以分为多个不相交的子树。
二叉树:每个结点最多有两个子树,有5种状态,空二叉树、根和空的左右子树、根和左子树、根和右子树、根和左右子树。
二叉树和树的特点仅仅在结点拥有的子结点的个数不同。
二叉树是树的一种。
一个结点有子树,那么该结点就是子树根的双亲,子树的根称为该结点的孩子,有相同双亲的结点互为兄弟,一个结点的所有子树上的任何结点都是该结点的后裔。从根结点到某个结点的路径上的所有结点都是该结点的祖先。
结点的度:结点拥有的子树的数目。
叶子结点:结点的度为0的结点。
分支结点:结点的度不为0的结点。
层次:根结点的层次为1,其余结点的层次等于该结点的双亲结点层次加1.
树的度:树中结点的最大的度。
树的高度:树中结点的最大层次。
森林:由0个或者多个不相交的树组成,对森林加上一个根,森林就成为了树,删除根,树就成了森林。
深度为k的二叉树,最多有多少个结点:最多是条件,可以看成满二叉树,结果是一个等比数列求和,20+……+2(k-1),化简得2^k-1.(k>=1)
在二叉树的第i层上最多有几个结点,还是想一下满二叉树每一层的结点数,是按等比数列排列,2i,所以第i层的结点数是2(i-1).(i>=1)
一个2叉树里有n个度为2的结点,则叶子结点n0=n2+1。
n=总分支数B+1。
分支是由结点度为2和结点度为1的结点射出,所以总分支数=n1+n2*2.
一棵深度为k且有2^k-1个结点的二叉树,则为满二叉树,意思就是满二叉树里的每一层的结点数都是最大结点数。对满二叉树进行编号,从上而下,从左到右,如果有一个深度为k的二叉树的编号一一对应,则称其为完全二叉树。对于完全二叉树来说,叶子结点只有可能在层级最大的两层上出现,如果右分支的最大层次是L,那么左分支的最大层级是L或者L=1;
树的遍历:
前序:先访问根结点,之后是左孩子,最后是右孩子;
后序:先访问左孩子,之后是右孩子,最后是根结点;
中序:先访问左孩子,之后是根结点,最后是右孩子;
- 2020-07-07
- centos7 JDK(JAVA环境)安装
- 初学Java---面向对象编程-static与final使用
- (二)HTML5之地理定位
- Docker Swarm(1)-----简介
- 找不到或无法加载主类 .encoding=utf-8 解决
- logback的使用打印mybats的sql语句
- Vue.js系列第二集——组件化开发
- Java学习日记----尚硅谷-宋红康day06_Eclipse的使用
- 浅谈js中节点的浅拷贝和深拷贝
- Thread(循环顺序执行多个线程)
- java基础-面向对象
- Django解决时区相差8小时的问题
- DataGrip 创建数据库的注意点
- 八十四
- pyquery / re的使用-爬取豆瓣Top250
- vue cli3配置多页面入口
- Mac启动Hive时报:Exception in thread “main“ java.lang.ClassCastException的解决办法
- Django学习记录(11)Django静态资源操作
- golang嵌套分支之8秒决赛组(六)