
数据结构理论
文章平均质量分 92
核心408种数据结构的知识点总结
哆啦G梦
软件开发爱好者,热爱软件开发,熟悉后端开发,有实战经验
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
9-sort-ex
对任意7个关键字进行基于比较的排序,至少要进行()次关键字之间的两两比较。对于任意序列进行基于比较的排序,求最少的比较次数应考虑最坏情况。对任意n个关键字排序的比较次数至少⌈log2n!)⌉。将n7代入公式,答案为13。上述公式证明如下(仅供有兴趣的同学参考):在基于比较的排序方法中,每次比较两个关键字后,仅出现两种可能的转移。假设整个排序过程至少需要做t次比较,则显然会有2t种情况。由于n个记录共有n!原创 2024-11-17 14:25:24 · 580 阅读 · 0 评论 -
9-sort
若nnn个关键字序列LLL若满足Li⩾L2iLi⩾L2i且Li⩾L2i11⩽i⩽n2Li⩾L2i11⩽i⩽2n则是大根堆或大顶堆。若满足Li⩽L2iLi⩽L2i且Li⩽L2i11⩽i⩽n2Li⩽L2i11⩽i⩽2n则是小根堆或小顶堆。所以堆就是用顺序存储的完全二叉树。堆的叶子结点范围是⌊log2n⌋1∼n⌊。原创 2024-11-17 14:24:52 · 917 阅读 · 0 评论 -
8-search-ex
由n个数据元素组成的两个表:一个递增有序,一个无序。采用顺序查找算法,对有序表从头开始查找,发现当前元素已不小于待查元素时,停止查找,确定查找不成功,已知查找任一元素的概率是相同的,则在两种表中成功查找()。A平均时间后者小B平均时间两者相同C平均时间前者小D无法确定B。对于顺序查找,不管线性表是有序的还是无序的,成功查找第一个元素的比较次数为1,成功查找第二个元素的比较次数为2,以此类推,即每个元素查找成功的比较次数只与其位置有关(与是否有序无关),因此查找成功的平均时间两者相同。原创 2024-11-17 14:24:21 · 1144 阅读 · 0 评论 -
8-search
查找基本概念查找:在数据集合中寻找满足某种条件的数据元素的过程。查找表(查找结构):用于查找的数据集合,由同一类型的数据元素或记录组成。关键字:数据元素中唯一标识该元素的某个数据项的值,使用基于关键字的查找,查找结果应该唯一。静态查找表:只查找符合条件的数据元素。(顺序查找、折半查找、散列查找)动态查找表:出来要查找,还要进行删除或插入,除了查找速度还要考虑插入删除操作是否方便。(二叉查找树查找、散列查找)查找长度:查找运算中,需要对比关键字的次数。平均查找长度ASLASLASL:所有查找原创 2024-11-17 14:23:50 · 661 阅读 · 0 评论 -
7-graph-ex
若无向图GVE中含有7个顶点,要保证图G在任何情况下都是连通的,则需要的边数最少是()。题干要求在“任何情况”下都是连通的,考虑最极端的情形,即图G的6个顶点构成一个完全无向图,即在前六个顶点加上所有能加的边,一共需要6×5÷2条(六个顶点连接其他五条,并且每条边连两个顶点)。再加上一条边后,第7个顶点必然与此完全无向图构成一个连通图,所以最少边数6×5÷2116。若边数n小于等于15,可以使这n条边仅连接图G。原创 2024-11-17 09:41:35 · 952 阅读 · 0 评论 -
7-graph
图是顶点集和边集构成的二元组,即图GGG由顶点集VVV和边集EEE组成,记为GVEG=(V,E)GVE,其中VGV(G)VG表示图GGG中顶点的有限非空集,EGE(G)EG表示图GGG中顶点之间的关系(边)集合。若Vv1v2⋯vnVv1v2⋯vn,则用∣V∣∣V∣表示图GGG中顶点的个数,也称图GGG的阶,Euv∣u∈Vv∈VE{(uv∣u∈Vv∈V。原创 2024-11-17 09:41:05 · 688 阅读 · 0 评论 -
6-tree-ex
树习题基本概念例题 在一棵度为444的树TTT中,若有202020个度为444的结点,101010个度为333的结点,111个度为222的结点,101010个度为111的结点,则树TTT的叶结点个数是()。A.41A.41A.41B.82B.82B.82C.113C.113C.113D.122D.122D.122解:BBB。设树中度为iii(i=0,1,2,3,4i=0,1,2,3,4i=0,1,2,3,4)的结点数分别为nin_ini,树中结点总数为nnn,则nnn=分支数+1+1+1,而原创 2024-11-16 15:22:14 · 580 阅读 · 0 评论 -
6-tree
路径和路径长度:从树中的一个结点到另一个结点之间的分支构成这两个结点之间的路径,路径上的分支数目称作路径长度。结点的权:有某种现实含义的数值。结点的带权路径长度:从根到该结点的路径长度(经过边数)与该结点权的乘积称为结点的带权路径长度。树的带权路径长度:树中所有叶子的带权路径长度之和称为树的带权路径长度WPL∑i1nwiliWPL∑i1nwili。哈夫曼树(最优二叉树):带权路径长度最短的二叉树。不一定是完全二叉树。原创 2024-11-16 15:21:31 · 923 阅读 · 0 评论 -
ds-5-string-ex
基本上就是考察KMP算法。原创 2024-11-15 11:15:15 · 533 阅读 · 0 评论 -
ds-5-string
顺序串的结构定义方案使用单独的变量lengthlengthlength保存串长。使用data0data[0]data0记录串长;使得字符位序与数组下标一致;但是由于charcharchar类型一个为一字节大小,所以能表示的数字是000到255255255,太大的串无法表示,大于的部分会被截断。没有表示串长的变量,使用0\0表示串结尾,对应ASCIIASCIIASCII码的000号字符。原创 2024-11-15 11:14:42 · 670 阅读 · 0 评论 -
ds-4-array-ex
但是这种公式很难记忆,所以直接找规律。观察三对角矩阵不难发现,第一行有两个元素,剩下的在元素。中的非零元素$a_{i,j}(按列优先顺序压缩存放在一维数组。)按行优先依次压缩存入下标从。按列优先级压缩存放在一维数组。按列优先存储,故元素。按列优先存储,故元素。,将其上三角部分的元素。原创 2024-11-15 11:14:11 · 715 阅读 · 0 评论 -
ds-4-array
数组是由同类型的数据元素构成的有序集合,每个元素是数组元素,每个元素受n个线性关系的约束。其中每个元素在n个线性关系中的序号就是元素的下标,可以通过下标来访问元素。数组是对线性表的推广。数组一旦被定义其维数和维界就不能改变,所以数组只能对结构的初始化和销毁,以及元素的存取和修改。所以数组的重点在于其存储。原创 2024-11-15 11:13:35 · 672 阅读 · 0 评论 -
ds-3-queue-ex
火车车轨入口到出口之间有n条轨道,列车的行进方向均为从左至右,列车可驶入任意一条轨道且每条道路可以容纳任意多数量的列车。现有编号为1∼9的9列列车,驶入的次序依次是842539167。若期望驶出的次序依次为1∼9,则n至少是()。解:这个题目是一个多队列问题。根据题意:入队顺序为842539167,出队顺序为1∼9。入口和出口之间有多个队列(n条轨道),且每个队列(轨道)可容纳多个元素(多列列车),为便于区分,队列用字母编号。原创 2024-11-15 11:13:03 · 861 阅读 · 0 评论 -
ds-3-queue
队列是只允许一端进行插入(入队或进队),一端进行删除(出队或离队)的线性表。即先进先出FIFO。队列允许插入的一端就是队尾,允许删除的一端就是队头。队列和栈是逻辑结构和物理结构没有不同,只是操作方式不同。原创 2024-11-15 11:12:19 · 769 阅读 · 0 评论 -
ds-2-stack-ex
栈和队列具有相同的()。A抽象数据类型B逻辑结构C存储结构D运算B。栈和队列的逻辑结构都是相同的,都属于线性结构,只是它们对数据的运算不同。原创 2024-11-15 11:11:46 · 989 阅读 · 0 评论 -
2-stack-ex
栈和队列具有相同的()。A抽象数据类型B逻辑结构C存储结构D运算B。栈和队列的逻辑结构都是相同的,都属于线性结构,只是它们对数据的运算不同。原创 2024-11-15 11:11:15 · 960 阅读 · 0 评论 -
ds-2-stack
设置栈顶指针可以为000(代表栈顶元素的下一个存储单元)也可以为−1-1−1(代表栈顶元素当前未知)。原创 2024-11-15 11:10:44 · 1036 阅读 · 0 评论 -
ds-1-linear-list-ex
以下()是一个线性表。A由n个实数组成的集合B由100个字符组成的序列C所有整数组成的序列D邻接表B。线性表定义的要求为:相同数据类型、有限序列。选项C的元素个数是无穷个,错误;选项A集合中的元素没有前后驱关系,错误;选项D属于存储结构,线性表是一种逻辑结构,不要将二者混为一谈。只有选项B符合线性表定义的要求。原创 2024-11-15 11:10:14 · 777 阅读 · 0 评论 -
ds-1-linear-list
使用CCC语言的结构体定义顺序表,使用typedef定义一个ElemType表示数据基本类型,并定义最大长度MAXSIZE// 初始化最大长度25// 定义默认值0// 定义最大值32767// 初始化最大长度 # define MAXSIZE 25 // 定义默认值 # define DEFAULTELEM 0 // 定义最大值 # define INFINITY 32767 // 定义默认数据类型 typedef char element_type;// 静态顺序表// 长度。原创 2024-11-15 11:09:43 · 992 阅读 · 0 评论 -
0-summary-ex
以下关于数据结构的说法中,正确的是()。A数据的逻辑结构独立于其存储结构B数据的存储结构独立于其逻辑结构C数据的逻辑结构唯一决定其存储结构D数据结构仅由其逻辑结构和存储结构决定A。数据的逻辑结构是从面向实际问题的角度出发的,只采用抽象表达方式,独立于存储结构;而数据的存储结构是逻辑结构在计算机上的映射,它不能独立于逻辑结构而存在;数据结构包括三个要素,缺一不可。在存储数据时,通常不仅要存储各数据元素的值,而且要存储()。A数据的操作方法B数据元素的类型C数据元素之间的关系D。原创 2024-11-15 11:09:10 · 600 阅读 · 0 评论 -
数据结构第一章知识点总结
存储数据时要存储数据元素的值,也要存储数据元素之间的关系。原创 2024-11-15 11:06:58 · 794 阅读 · 0 评论