数据结构 — 树 与 二叉树、森林
来源:互联网 发布:qq mac版手机 编辑:程序博客网 时间:2024/05/26 15:57
一、常用术语:
1)树的节点
2)节点路径:
从根节点到该节点所经历的节点和分支的顺序。
3)路径长度:
节点路径包含的分支数。
4)节点的度:
节点拥有的子树的数目。
5)树的度:
所有节点的度 中 的最大值。
6)叶子节点(终端节点)
树中 节点的度为0的节点。
7)分支节点(非终端节点)
树中 节点的度不为0的节点。树中除了叶子节点的其他节点。
8)孩子节点(子节点)
一个节点的子节点是指 该节点 子树的根结点。
9)双亲节点(父节点)
如果一个节点有子节点,那么他就是这个子节点的父节点。
10)子孙节点
一个节点的子孙节点是指这个节点的所有子树中的任意节点。
11)祖先节点
一个节点的祖先节点是指该节点的路径中除此节点之外的所有节点。
12)兄弟节点
具有同一双亲的节点。
13)节点层次
根结点层次为 0,其他节点层次为 父节点层次 +1。
14)树的深度
所有节点中层次数最大值 +1。
15)有序树
各节点的所有子树之间从左到右有严格的次序关系,不能互换。
16)无序树
各节点的所有子树之间没有严格的次序关系。
17)森林
m(m>=0)棵互不相交的树所构成的集合。
二、二叉树(特殊的树)
1、每个节点最多有两棵子树,并且子树也是二叉树。
2、二叉树允许只有右子树;一般树中不允许。
3、满二叉树
4、完全二叉树
5、单分支树
1)定义:所有节点没有右孩子或没有左孩子。
2)例如
三、二叉树的性质
1、二叉树中第i(i>=0)层上的节点数最多为2的i次幂。
2、深度为h(h>=1)的二叉树最多有2^h -1 个节点
3、叶子节点为n0,度为2的节点个数为n2则 n0 = n2 +1。
4、具有n个节点的完全二叉树,其深度为log2(n)+ 1 或者 log2(n+1)
5、对于具有n个节点的完全二叉树,节点从0开始编号。
1)i = 0 二叉树的根结点;i>1,i节点的双亲编号(i-1)/2。
2)若2i+1>=n,i节点无左孩子,否则 2i+1 为其左孩子
3)若2i+2>=n,i节点无右孩子,否则 2i+2 为其右孩子
4、二叉树 与 树 、森林的转换
1)二叉树与树的转换
树 —>二叉树
(1)断右子(加线)
(2)连兄弟(断线)
(3)顺转45‘
二叉树 —> 树
(1)逆转45’(加线)
(2)断兄弟(断线)
(3)找双亲
2)二叉树 《=》树《=》 森林
森林 —> 树
方法:第一棵树根结点 为 树的根结点,其他树为右孩子
反之亦然
森林 <—> 二叉树
- 数据结构 — 树 与 二叉树、森林
- 数据结构——二叉树与树、森林的互换
- 数据结构---树、二叉树、森林
- [数据结构与算法]树、森林与二叉树的转换
- 树,森林与二叉树的转换 数据结构期末复习
- 数据结构—树、森林与二叉树的转换(类C语言描述)
- 树、森林与二叉树
- 树、森林转二叉树(数据结构)
- 数据结构之树、二叉树和森林
- 11.13数据结构----树与森林
- 数据结构(六)树----树、森林与二叉树的转换及树的存储结构
- 【学习笔记----数据结构12-树、森林与二叉树的转换】
- 数据结构(12):树、二叉树与森林之间的转换(未完成)
- 树、森林与二叉树的转换
- 树 森林 与二叉树的转换
- 树、森林与二叉树的转换
- 树、森林与二叉树的转换
- 树、森林与二叉树的转换
- 基于JQUERY的WEB在线流程图设计器GOOFLOW 0.5版
- Android 键盘使用一(监听弹出隐藏)
- LeetCode OJ 系列之62 Unique Paths --Python
- 一些系统漏洞
- 打包输出文件太大
- 数据结构 — 树 与 二叉树、森林
- 关于“一秒一G LiFi比WiFi快一百倍”的评论
- 项目适配iOS9遇到的一些问题及解决办法
- LeetCode OJ 系列之63 Unique Paths II --Python
- iOS开发--UIApplication(IconBadgeNum)
- VS2008中的多个CMFCToolBar,在同一行显示!
- 【Android即时通讯】Android 高仿微信的即时聊天DEMO
- Android代码混淆、第三方平台加固加密、渠道分发 完整教程
- 2015.11.27-------KNN算法的python实现的应用