树的上课笔记
来源:互联网 发布:java collectionutils 编辑:程序博客网 时间:2024/06/09 19:55
树
树定义:
专业的定义:
1.有且只有一个称为根的节点
2.有若干个互不相交的子树,这些子树也是一棵树
通俗的定义:
1.树是由节点和边组成
2.每一个节点只有一个父节点,但可以有多个子节点
3.但有一个节点例外,该节点没有父节点,此节点称为根节点
专业术语:
节点 父节点 子节点 子孙 堂兄弟
深度:
从根节点到最多底层节点的层数称之为深度
根节点是第一层
叶子结点:
没有子节点的节点
非终端节点
实际就是非叶子节点
度
子节点的个数称为度
树的分类:
一般树
任意一个节点的子节点个数最多两个,且子节点的位置不可更改
分类:
一般二叉树
满二叉树
在不增加数的层数的前提下无法在添加一个节点的二叉树就是满二叉树
完全二叉树
n个互不相交的树的集合
树的存储 :
二叉树的存储
连续存储[完全二叉树]
数组存法:
优点:
查找某个节点的父节点和子节点(也包括判断有没有子节点)速度快
缺点:
耗内存空间大
链式存储
双亲表示法:
每一个元素存的是父亲的下标
每一个元素的孩子节点
每个元素存的是父亲的下标和孩子的节点
把一个普通树转化为二叉树存储
*具体转换方法:
设法保证任意一个节点的
左指针域指向它的第一个孩子
右指针域指向它的兄弟节点
只要满足此条件,就可以把一个普通树转化为二叉树
遍历:
再先序访问左子树
中序遍历左子树
再访问根节点
中序遍历左子树
中序遍历右子树
只有先和中,中和后可以推算出二叉树的原始样子
操作系统子父进程的关系本身就是一棵树
面向对象语言中累的继承关系本身就是一棵树
赫夫曼树
树定义:
专业的定义:
1.有且只有一个称为根的节点
2.有若干个互不相交的子树,这些子树也是一棵树
通俗的定义:
1.树是由节点和边组成
2.每一个节点只有一个父节点,但可以有多个子节点
3.但有一个节点例外,该节点没有父节点,此节点称为根节点
专业术语:
节点 父节点 子节点 子孙 堂兄弟
深度:
从根节点到最多底层节点的层数称之为深度
根节点是第一层
叶子结点:
没有子节点的节点
非终端节点
实际就是非叶子节点
度
子节点的个数称为度
树的分类:
一般树
任意一个节点的子节点的个数都不受限制
任意一个节点的子节点个数最多两个,且子节点的位置不可更改
分类:
一般二叉树
满二叉树
在不增加数的层数的前提下无法在添加一个节点的二叉树就是满二叉树
完全二叉树
如果只是删除了满二叉树最底层最右边的连续若干个节点,这样形成的 二叉树就是完全二叉树
n个互不相交的树的集合
树的存储 :
二叉树的存储
连续存储[完全二叉树]
数组存法:
优点:
查找某个节点的父节点和子节点(也包括判断有没有子节点)速度快
缺点:
耗内存空间大
链式存储
链表存法:
双亲表示法:
每一个元素存的是父亲的下标
求父节点方便
每一个元素的孩子节点
求子类点方便
每个元素存的是父亲的下标和孩子的节点
求父节点和子节点都方便
把一个普通树转化为二叉树存储
*具体转换方法:
设法保证任意一个节点的
左指针域指向它的第一个孩子
右指针域指向它的兄弟节点
只要满足此条件,就可以把一个普通树转化为二叉树
一个普通树转化成的二叉树一定没有右子树
先把森林转化为二叉树,再存储二叉树
遍历:
先序遍历(先访问根节点):
先访问根节点再先序访问左子树
再先序访问右子树
中序遍历左子树
再访问根节点
再中序访问右子树
中序遍历左子树
中序遍历右子树
再访问根节点
只有先和中,中和后可以推算出二叉树的原始样子
通过先和后是无法推算出原始的二叉树的
应用:
树是数据库组织一种重要形式操作系统子父进程的关系本身就是一棵树
面向对象语言中累的继承关系本身就是一棵树
赫夫曼树
0 0
- 树的上课笔记
- 上课做好笔记的方法
- 上课笔记set_new_handler的实现
- 上课笔记
- 上课笔记
- 上课笔记
- 上课笔记
- 上课笔记
- 上课记录笔记 数据类型的转换
- umlchina公共课上课笔记
- umlchina公共课上课笔记
- SQLserver上课笔记
- oracle 上课笔记
- 第二次上课笔记
- CS4700计算机网络 上课笔记
- Linux上课笔记简记
- 上课笔记--金融学
- 《JAVA语言程序设计》上课笔记
- Vijos P1334 NASA的食物计划(动态规划,二维费用的01背包)
- 华为2017上机题(北京优招)
- JMS和ActiveMQ
- java中Class.forName的含义
- JAVA中的集合框架
- 树的上课笔记
- BufferedInputStream。。。。。。。BufferedReader和BufferedWriter
- 实习总结
- oracle-rdbms-server-11gR2-preinstall RPM 软件包的功能
- 数据结构实验之查找四:二分查找
- servlet线程安全问题
- lsblk命令
- Intent.ACTION_VIEW
- pat_BL_1002