1
0
mirror of https://github.com/SSHeRun/CS-Xmind-Note.git synced 2026-02-10 22:06:00 +08:00

update the data and struct

This commit is contained in:
Thrinity
2019-09-02 19:27:46 +08:00
parent 5994c3b9e4
commit 88289826bd
3 changed files with 8 additions and 5 deletions

View File

@@ -13,7 +13,7 @@
### 物理结构
* 存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构。它包括数据元素的表示和关系的表示。数据的存储结构是逻辑结构用计算机语言的实现,它依赖于计算机语言。数据的存储结构主要有:顺序存储、链式存储、索引存储和散列存储。
* 顺序存储存储的物理位置相邻。p.s. 物理位置即信息在计算机中的位置。)
* 链接存储:存储的物理位置未必相邻,通过 记录相邻元素的物理位置来找到相邻元素。
* 链接存储:存储的物理位置未必相邻,通过记录相邻元素的物理位置来找到相邻元素。
* 索引存储:类似于目录,以后可以联系操作系统的文件系统章节来理解。
* 散列存储:通过关键字直接计算出元素的物理地址(以后详解)。
### 算法的五个特征
@@ -211,7 +211,9 @@ First Out
* 要理解递归,你要先理解递归,直到你能理解递归。
如果在一个函数、过程或数据结构的定义中又应用了它自身,那么这个函数、过程或数据结构称为是递归定义的,简称递归。递归最重要的是递归式和递归边界。
* 1.阶乘
* 时间复杂度O(NlogN)
* 2.斐波那契数列
* 时间复杂度 O(2^n)
* 概要: 如何将中缀表达式转换成后缀表达式?
* 1.按运算符优先级对所有运算符和它的运算数加括号。(原本的括号不用加)
* 2.把运算符移到对应的括号后。
@@ -245,7 +247,7 @@ First Out
* 1.树中的结点数等于所有结点的度数加1。
* 证明:不难想象,除根结点以外,每个结点有且仅有一个指向它的前驱结点。也就是说每个结点和指向它的分支一一对应。
假设树中一共有b个分支那么除了根结点整个树就包含有b个结点所以整个树的结点数就是这b个结点加上根结点设为n则n=b+1。而分支数b也就是所有结点的度数证毕。
* 2.度为m的树中第i层上至多有m^i1个结点i≥1
* 2.度为m的树中第i层上至多有m^(i1)个结点i≥1
* 证明:(数学归纳法)
首先考虑i=1的情况第一层只有根结点即一个结点i=1带入式子满足。
假设第i-1层满足这个性质第i-1层最多有m i-2个结点。
@@ -427,7 +429,7 @@ i-1层
* 概要:
*
*
* 克鲁斯卡尔算法操作分为对边的权值排序部分和一个单重for循环它们是并列关系由于排序耗费时间大于单重循环所以克鲁斯卡尔算法的主要时间耗费在排序上。排序和图中边的数量有关系所以适合稀疏图
* 概要: 克鲁斯卡尔算法操作分为对边的权值排序部分和一个单重for循环它们是并列关系由于排序耗费时间大于单重循环所以克鲁斯卡尔算法的主要时间耗费在排序上。排序和图中边的数量有关系所以适合稀疏图
* 最短路径
* 迪杰斯特拉
* 一个源点到其余顶点的最短路径
@@ -579,7 +581,9 @@ path[]path[i]表示从源点到顶点i之间的最短路径的前驱结点
* 查找过程①先让待查找关键字key和结点的中的关键字比较如果等于其中某个关键字则查找成功。
②如果和所有关键字都不相等则看key处在哪个范围内然后去对应的指针所指向的子树中查找。
Eg:如果Key比第一个关键字K1还小则去P0指针所指向的子树中查找如果比最后一个关键字Kn还大则去Pn指针所指向的子树中查找。
* 2.B树的插入操作
* 分裂的方法:取这个关键字数组中的中间关键字(⌈n/2⌉)作为新的结点,然后其他关键字形成两个结点作为新结点的左右孩子。
* 3.B树的删除操作
* B树中的删除操作与插入操作类似但要稍微复杂些要使得删除后的结点中的关键字个数≥⌈m/2⌉-1 ,因此将涉及结点的“合并”问题。由于删除的关键字位置不同,可以分为关键字在终端结点和不在终端结点上两种情况。
* 1如果删除的关键字在终端结点上最底层非叶子结点
@@ -591,7 +595,6 @@ path[]path[i]表示从源点到顶点i之间的最短路径的前驱结点
* 相邻关键字:对于不在终端结点上的关键字,它的相邻关键字是其左子树中值最大的关键字或者右子树中值最小的关键字。
* 第一种情况存在关键字数量大于⌈m/2⌉-1 的左子树或者右子树,在对应子树上找到该关键字的相邻关键字,然后将相邻关键字替换待删除的关键字。
* 第二种情况左右子树的关键字数量均等于⌈m/2⌉-1 ,则将这两个左右子树结点合并,然后删除待删除关键字。
* 概要: 分裂的方法:取这个关键字数组中的中间关键字(⌈n/2⌉)作为新的结点,然后其他关键字形成两个结点作为新结点的左右孩子。
* B+树
* B+树是常用于数据库和操作系统的文件系统中的一种用于查找的数据结构
* m阶的B+树与m阶的B树的主要差异在于
@@ -761,4 +764,4 @@ path[]path[i]表示从源点到顶点i之间的最短路径的前驱结点
* 树的先序遍历等于它对应二叉树的先序遍历,后序遍历等于它对应的二叉树的中序遍历
* 概要: 例子
![picture](https://github.com/SSHeRun/CS-Xmind-Note/blob/master/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84.png)
*XMind: ZEN - Trial Version*

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 MiB

After

Width:  |  Height:  |  Size: 7.9 MiB

Binary file not shown.