
数据结构#精简知识点笔记
文章平均质量分 68
数据结构
CyAuroras
这个作者很懒,什么都没留下…
展开
-
数据结构-外部排序-(多路归并排序、败者树、置换选择排序、最佳归并树)
按增序,开始读取3个记录,最小的(4)置换出去,并MINXMAX=4,,读取下一个,在获取最小的值是否小于MINXMAX,小于放入归并段1后面,如果大于定死这个(下次都不看),就获取下一个最小的值并大于MINXMAX的(14)置换出去后面,并更新MINXMAX14,然后继续置换,直到3个位置的比 MINXMAX小,就重新一个归并段,在继续前面的置换流程一直结束。对r个初始归并段,做k路归并,则归并树可用k叉树表示,若树高为h,则归并趟树。有了败着树,选出最小元素,只对比灰色每层就行,比对。原创 2023-05-16 21:33:16 · 1392 阅读 · 1 评论 -
数据结构-排序-(选择、堆排序、归并排序、基数排序)
数值有个位、十位、百位..等等,第一趟以个位开始进行分配到[0~9]的队列中,结束后收集起来。二叉树的顺序存储,大根堆->{根>左右},小根堆->{根<左右}m路归并:m个有序序列合二为一 最少对比 m-1次。获取根第一个,又删除根后恢复大堆根,又取根,一直循环取完为止。四路归并:四个有序序列合二为一 最少对比 4-1次。二路归并:两个有序序列合二为一 最少对比2-1次。2个数组值小的放入下方数组,小的和下面数组都后移一位。关键字对比不超过4n,建堆时间O(n),排序时间。原创 2023-05-15 21:12:27 · 516 阅读 · 0 评论 -
数据结构-排序-(直接插入、折半插入、希尔排序、冒泡、快速排序)
思想:从后往前(或从前往后)两两比较相邻元素值,A[i-1]>A[i]就交换它们,直到序列比较完,称一趟排序。思想:每次将一个待排序的记录按其关键字大小插入到前面已经排好序中,直到全部记录插入完毕。思想:先用折半查找找到应该插入的位置,再移动元素。第二趟:d2=d1/2=3 向上取整。第一趟:d1=n/2=5。原创 2023-05-14 20:53:54 · 573 阅读 · 0 评论 -
数据结构-查找-散列结构(散列表)
H(key)=key%p 散列表长度为m,取一个不大于m但最接近或等于m的质数p。=表中记录/散列表长度 越大代表散列表装的越满。H(key)=key 或 H(key)=a*key+b。132****5685 电话号码后四位较均匀。又称哈希表,数据元素的关键字与其存储地址直接相关。通过散列函数来建立关键字与存储地址间的联系。选取数码发布较均匀的若干位作位散列地址。取关键字的平方值的中间几位作为散列函数。查找也通过散列函数获取下标。删除:逻辑上标记删除。原创 2023-05-13 20:29:44 · 622 阅读 · 0 评论 -
数据结构-查找-树形结构(二叉排序树、二叉平衡树、红黑树、B树、B+树)查找
先左后右双旋转:先将A结点孩子左孩子B的右孩子C向左上旋转提升到B的位置,然后在把C向右上旋转提升的A的位置。先右后左双旋转:先将A结点孩子右孩子B的左孩子C向右上旋转提升到B的位置,然后在把C向左上旋转提升的A的位置。右单旋转:A的右孩子B向左上旋转代替A位置,将A左旋转成B的左孩子,而B原本的左孩子成A的右孩子。右单旋转:A的左孩子B向右上旋转代替A位置,将A右旋转成B的右孩子,而B原本的右孩子成A的左孩子。②若z结点只有一颗左子树或者右子树,则让z的子树成为z的父结点的子树,替代z的位置。原创 2023-05-12 23:06:55 · 691 阅读 · 0 评论 -
数据结构-查找-线性结构(顺序、折半、分块)查找
右子树结点数-左子树结点树=0或1,且只有最后一层不满,高度就是二叉树树高。若索引表采用顺序查找,则查7:2次、10:3次、13:3次...成功=(第几层*每层成功结点树)累和/总成功结点数。若索引表采用折半查找,则查30:4次、27:3次...n个数据,每个数据查找成功概率为。失败=(失败的层*每层数量)累和/总失败结点数。①:在索引表中确定待查记录所属的分块(可顺序,可折半)一个失败结点查找长度=其父结点所在层数。失败结点数量为 n+1。一个成功结点查找长度=自身所在层数。折半查找只适用有序的顺序表。原创 2023-05-10 20:44:49 · 643 阅读 · 0 评论 -
数据结构-图的遍历和应用(DAG、AOV、AOE网)
在带权有向图中,以顶点表示事件,以有向边表示活动,以边上的权值表示完成该活动的 开销(如时间),称之为用边表示活动的网络,简称AOE网。:假设图G中顶点y是顶点x的邻接点,返回除y之外顶点x的下一个邻接点的顶点号,若y就是最后一个返回-1。:AOE网仅有一个入度未0的顶点,称为开始顶点(源点),表示工程的开始。AOV网:若用DAG图表示一个工程图,其顶点表示活动,用边表示活动。:也仅有一个出度为0的顶点,称结束顶点(汇点),表示工程的结束。一个连通分量一个树,多个(非连通图)就是森林。原创 2023-05-10 00:05:44 · 2310 阅读 · 0 评论 -
数据结构-图
--从顶点u出发到顶点v的最短路径若存在,则此路径的长度称u到v的路径,若不存在路径,则记该距离为无穷。:--除第一个顶点和最后一个顶点外,其余顶点不重复出现的回路。:--第一个顶点和最后一个顶点相同的路径称为回路或环。(极小连通子图):包含全部顶点,尽可能少的边。:点v到点w存在路径,和点w到点v也存在路径。:任意两个顶点是连通的(存在路径):任意一个顶点之间是强连通的(存在路径)等于由顶点i到顶点j的长度为n的路径数目。:--在路径序列,顶点不重复出现的路径。:一个顶点入度为0,其余顶点入度均为1。原创 2023-05-08 00:25:41 · 748 阅读 · 0 评论 -
数据结构-树、森林&应用(哈夫曼树)
从根结点到任意结点的路径长度于该结点上的权值乘积,称该结点带权路径长度,记,其中是第i个叶结点所带的权值,是叶结点到根结点的路径长度WPL=36最小,所以是哈夫曼树。原创 2023-05-07 00:02:59 · 493 阅读 · 0 评论 -
数据结构-二叉树&遍历&线索二叉树
二叉树是另一种树形结构,其特点是每个结点至多只有两课子树,并且二叉树的子树有左右之分,其次序不能任意颠倒空二叉树,即n=0。原创 2023-05-03 22:16:31 · 366 阅读 · 0 评论 -
数据结构-树
树是n(n>=0)个结点的有限集,当n=0时,称为空树。在任意一颗非空树中应满足1)有且仅有一个特定的称为根的结点2)当n>1时,其余结点可分为m个互不相交的有限集,其中每个子集合本身又是一颗树,并且称为根的子树。原创 2023-05-03 20:51:10 · 166 阅读 · 0 评论 -
数据结构-串(KMP算法)
由零个或多个字符组成的有限序列//每给分量存储的一个字符int length;//串的实际长度}SString;串中任意多个连续的字符组成的子序列称为串的子串,包含含子串的串称为主串,长度分别为13、7 、5,B和C是A的子串,B在A中的位置是7,C在A中的位置是1长度是1开始的注意:一个空格也是一个字符长度。原创 2023-04-28 23:13:14 · 693 阅读 · 0 评论 -
数据结构-数组与特殊矩阵
数组的所有元素在内存中占用一段连续的存储空间,行优先和列优先存储位置不同。行优先和列优先存储位置不同。行优先和列优先存储位置不同。行优先和列优先存储位置不同。原创 2023-04-27 21:15:07 · 185 阅读 · 0 评论 -
数据结构-栈和队列的应用
设置一个打印数据缓冲区,主机把要打印输出的数据依次写入这个缓冲区,写满后就暂停输出,转去做其他事情,打印机就从缓冲区中按先进先出顺序依次取出数据打印。在一个带有多终端的计算机系统上,有多个用户需要CPU各自运行自己的程序,它们分别通过各自的终端向操作系统提出占用CPU的请求。通常把大型的复杂问题转化为一个与原问题相似的规模较小的问题来求解,大大减少程序代码量,但在通常情况下,效率并不太高。主机输出数据给打印机打印,输出数据的速度比打印数据的速度要快得多,由于速度不匹配,直接把数据送给打印机显然不行。原创 2023-04-27 20:30:58 · 167 阅读 · 0 评论 -
数据结构-队列
一种受限的线性表,只允许在一端插入,另一端删除,插入元素称入队或者进队、删除元素称出队或者离队//存放队列元素//队头指针和队尾指针}SqQueue;把存储队列元素的表逻辑上视为一个环,称循环队列。原创 2023-04-27 19:46:48 · 113 阅读 · 0 评论 -
数据结构-栈
栈是只允许在一端进行插入和删除操作的线性表。//存放元素int top;//栈顶指针}SqStack;栈顶:线性表允许进行插入删除的一端栈底:固定的,不允许进行插入和删除的另一端空栈:不含任务元素的空表栈的数学性质:n个不同的元素进栈,出栈元素不同排列的个数为,公式称卡特兰(Catalan)数,原创 2023-04-27 17:56:08 · 75 阅读 · 0 评论 -
数据结构-线性表-链式存储
目录一、单链表1.1定义*1.2操作头插法尾插法结点插入删除节点二、双链表2.1定义*2.2操作插入*三、循环链表*四、静态链表一、单链表1.1定义通过一组任意的存储单元来存储线性表中的数据元素。每给元素存放元素自身的信息外,还需要存放一个指向其后继的指针,其中data为数据域,存放数据元素;next为指针域,存放后继指针typedef struct LNode{ //定义单链表结点类型 int data;原创 2023-04-26 23:45:46 · 191 阅读 · 0 评论 -
数据结构-绪论
信息的载体,是描述客观事属性的数、字符及所有能输入到计算机中并被计算机程序识别何处理的符号的集合。链式存储:不要求逻辑上相邻的元素在物理位置上也相邻,借地址指针来表示元素的关系。索引存储:在存储元素信息的同时,还建立附加的索引表。数据之间的逻辑关系,与数据的存储无关、分线性结构和非线性关系。顺序存储:把逻辑相邻的元素存储在物理位置上也相邻的存储单元中。散列存储:根据元素的关键字通过散列函数计算该元素的存储地址。:具有相同性质的数据元素的集合、数据的一个子集。2)确定性:对相同的输入只能有相同的结果。原创 2023-04-26 20:30:21 · 98 阅读 · 0 评论 -
数据结构-线性表-顺序存储
线性表具有相同数据类型的n个数据元素的有限序列。原创 2023-04-26 21:47:29 · 151 阅读 · 0 评论