《数据结构》复习资料
数据结构复习资料(亲自整理)

数据结构复习资料(亲自整理)1、链表是一种存储数据的链式结构,每个数据之间都是相关联的。
2、线性结构是一个有序数据元素的集合,包括线性表、栈、队列、双队列、数组和串。
3、树是由n(n>=1)个有限节点组成一个具有层次关系的集合,而二叉树是每个结点最多有两个子树的有序树。
二叉树与树的主要差别在于,二叉树结点的最大度数为2,而树中结点的最大度数没有限制;二叉树的结点有左、右之分,而树的结点无左、右之分。
4、堆是一种可以被看做一棵树的数组对象,总是满足某个节点的值总是不大于或不小于其父节点的值,且堆总是一棵完全二叉树。
5、二叉排序树是一种满足以下递归定义的二叉树:若左子树非空,则左子树所有节点的值均小于它的根节点;若右子树非空,则右子树所有节点的值均大于于它的根节点;左右子树也分别为二叉排序树。
1、在已知前序遍历和中序遍历的情况下,可以通过画树的方法求得后序遍历。
具体步骤如下:首先根据前序遍历的特点,确定根节点;然后观察中序遍历,将左子树和右子树分别确定下来;接着对左子树和右子树分别进行递归,直到遍历完所有节点,最后得到后序遍历。
2、树和二叉树之间可以相互转换。
将树转换为二叉树的方法是:对于每个节点,将其第一个孩子作为其左孩子,将其兄弟作为其右孩子。
将二叉树转换为树的方法是:对于每个节点,将其右孩子作为其兄弟。
3、二叉树线索化是将二叉树中的空指针指向该节点在中序遍历中的前驱或后继节点的过程。
在线索二叉树中,一个结点是叶结点的充要条件为:左、右标志均是1.4、邻接表是图的一种链式存储结构,用于表示图中每个节点的邻居节点。
每个节点都有一个链表,存储着与该节点相邻的节点。
邻接表是一种图的存储结构,对于每个顶点建立一个单链表,单链表中的结点表示依附于该顶点的边(对于有向图是以该顶点为尾的弧)。
邻接表中的表结点和头结点分别表示边和顶点,包含信息如下:表结点adjvex(邻接点)。
nextarc(指向下一个表结点)(权值等信息);头结点data(顶点信息)和firstarc(指向第一个表结点)。
数据结构笔试复习

数据结构笔试复习⼀选择题1.下述哪⼀条是顺序存储结构的优点?()A.存储密度⼤ B.插⼊运算⽅便 C.删除运算⽅便 D.可⽅便地⽤于各种逻辑结构的存储表⽰2.数据结构在计算机内存中的表⽰是指( )。
A. 数据的物理结构B. 数据结构C. 数据的逻辑结构D. 数据元素之间的关系3.下⾯关于线性表的叙述中,错误的是哪⼀个?()A.线性表采⽤顺序存储,必须占⽤⼀⽚连续的存储单元。
B.线性表采⽤顺序存储,便于进⾏插⼊和删除操作。
C.线性表采⽤链接存储,不必占⽤⼀⽚连续的存储单元。
D.线性表采⽤链接存储,便于插⼊和删除操作。
4.若线性表最常⽤的操作是存取第i个元素及其前驱的值,则采⽤( )存储⽅式节省时间。
A. 单链表B. 双向链表C. 循环链表D. 顺序表5.线性表是具有n 个()的有限序列(n>0)。
A.表元素 B.字符 C.数据元素 D.数据项 E.信息项6.若某线性表最常⽤的操作是存取任⼀指定序号的元素和在最后进⾏插⼊和删除运算,则利⽤()存储⽅式最节省时间。
A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表7.某线性表中最常⽤的操作是在最后⼀个元素之后插⼊⼀个元素和删除第⼀个元素,则采⽤()存储⽅式最节省运算时间。
A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表8.设⼀个链表最常⽤的操作是在末尾插⼊结点和删除尾结点,则选⽤( )最节省时间。
A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表9.若某表最常⽤的操作是在最后⼀个结点之后插⼊⼀个结点或删除最后⼀个结点。
则采⽤()存储⽅式最节省运算时间。
A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表10. 链表不具有的特点是()A.插⼊、删除不需要移动元素 B.可随机访问任⼀元素C.不必事先估计存储空间 D.所需空间与线性长度成正⽐11、3个结点可构成_____棵不同形态的⼆叉树。
数据结构复习

地址计算 以三对角矩阵为例
三对角矩阵中所有非零元素为3*n-2,可用一维数组s[3*n-2]存储.aij与s[k]
LOC(i,j)=LOC(0,0)+[3*i-1+(j-i+1)]*d
=LOC(0,0)+(2i+j)*d
4.3.2 稀疏矩阵
5、设长度为n的链队列用单循环链表表示,若只设头指针,则怎样进行入队和出队操作;若只设尾指针呢?
6、假设循环队列只设rear和quelen来分别指示队尾元素的位置和队中元素的个数,试给出判断此循环队列的队满条件,并写出相应的入队和出队算法,要求出队时需返回队头指针。
第四章 数组
4.1 数组的定义
(2)能否得到出栈序列423和432?并说明为什么不能得到或如何得到。
(3)请分析1、2、3、4的24种排列中,哪些序列可以通过相应的入出栈得到。
2、表达式求值
3、两个栈共享存储空间r[m],写出向第i个栈插入x,删除第i个栈的栈顶元素算法。
4、循环队列的优点是什么?如何判断它的空和满?循环队列的操作算法?
(2)二叉链表法
5.3 遍历二叉树
在二叉树的一些应用中,常常要求在树中查找具有某
种特征的结点,或者对树中全部结点逐一进行某种处
理。这就引入了遍历二叉树的问题,即如何按某条搜
索路径巡访树中的每一个结点,使得每一个结点均被
访问一次,而且仅被访问一次。
DLR——先(根)序遍历,
LDR——中(根)序遍历,
习题:6.2,6.3,6.5,6.6,6.7,6.12,6.13,6.14,6.19,6.21,6.26,6.42,6.43,6.47,
第六章 图
数据结构复习材料

一、单选题(共20题,40分)1、向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动的元素个数为()。
(2.0)A、 8B、 63.5C、 63D、 7正确答案: B2、在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是()。
(2.0)A、 O(1)B、 O(n)C、O(n²)D、 O(log₂n)正确答案: B3、根据一组关键字(56, 42, 50, 64, 48)依次插入结点生成一棵AVL树,当插入到值为0的结点时需要进行旋转调整。
(2.0)A、 42B、 50C、 64D、 48正确答案: B4、若查找每个元素的概率相等,则在长度为n的顺序表上查找任一元素的平均查找长度为( )。
(2.0)A、 nB、 n+1C、 (n-1)/2D、 (n+1)/2正确答案: D5、在一个长度为n的顺序表中删除第i个元素(0<=i<=n)时,需向前移动个元素。
(2.0)A、 n-iB、 n-i+lC、 n-i-1D、 i正确答案: A6、稀疏矩阵一般的压缩存储方法有两种,即()。
(2.0)A、二维数组和三维数组B、三元组和散列C、三元组和十字链表D、散列和十字链表正确答案: C7、以下关于线性表的说法不正确的是______。
(2.0)A、线性表中的数据元素可以是数字、字符、记录等不同类型。
B、线性表中包含的数据元素个数不是任意的。
C、线性表中的每个结点都有且只有一个直接前趋和直接后继。
D、存在这样的线性表:表中各结点都没有直接前趋和直接后继。
正确答案: C8、在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是()。
(2.0)A、访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)B、在第i个结点后插入一个新结点(1≤i≤n)C、删除第i个结点(1≤i≤n)D、将n个结点从小到大排序正确答案: A9、一棵非空的二叉树的先序遍历序列与后序遍历序列正好相同,则该二叉树一定满足()。
数据结构复习要点

A—熟练掌握B—理解C—了解第一章:绪论1. 基本概念:包括数据的逻辑结构、数据的存储结构和数据的相关运算。
C四类数据组织结构:集合、线性表、树形、图状结构C数据的存储方式:顺序存储和链式存储。
B2.算法和分析算法的特征、时间复杂度的分析和常见的时间复杂度增长率排序、空间复杂度B本章重点:分析算法时间复杂度例1. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的D例2. 以下那一个术语与数据的存储结构无关?()A.栈 B. 哈希表 C. 线索树 D. 双向链表A.例3..求下段程序的时间复杂度:void mergesort(int i, int j){int m;if(i!=j){m=(i+j)/2;mergesort(i,m);mergesort(m+1,j);merge(i,j,m);}}其中mergesort()用于对数组a[n]归并排序,调用方式为mergesort(0,n-1);,merge()用于两个有序子序列的合并,是非递归函数,时间复杂度为。
解:分析得到的时间复杂度的递归关系:为merge()所需的时间,设为cn(c为常量)。
因此令,有有第二章:线性表1.线性表的基本运算:….. C2.线性表的顺序存储(利用静态数组或动态内存分配)。
相应的表示与操作 A3.线性表的链式存储。
相应的表示与操作。
包括循环链表、双向链表。
A4.顺序存储与链式存储的比较:基于时间的考虑--分别适用于静态的和动态的操作:比如静态查找和插入删除);基于空间的考虑-- ……. B这也适用于后面用两种方式存储的其他数据结构。
★本章重点:很熟悉顺序表,单链表、双链表,循环链表的基本操作;并学会在各种链表上进行一些算法设计(与基本操作类似的操作或组合),请仔细复习。
例4.假设有两个按元素值递增次序排列的线性表,均以单链表形式存储。
数据结构复习大纲

数据结构复习大纲第一章绪论1. 数据结构的基本概念和术语1.1 数据、数据元素、数据项、数据结构等基本概念1.2 数据结构的逻辑结构、存储结构及数据运算的含义及其相互关系1.3 数据结构的两大逻辑结构和四种常用的存储表示方法2. 算法的描述和分析2.1 算法、算法的时间复杂度和空间复杂度、最坏的和平均的时间复杂度等概念2.2 算法描述和算法分析的方法,对于一般算法能分析出时间复杂度第二章线性表1. 线性表的逻辑结构1.1 线性表的逻辑结构特征2. 线性表的顺序存储结构2.1 顺序表的含义及特点,即顺序表如何反映线性表中元素之间的逻辑关系2.2 顺序表上的插入、删除操作及其平均时间性能分析3. 线性表的链式存储结构3.1 链表如何表示线性表中元素之间的逻辑关系3.2 链表中头指针和头结点的使用3.3 单链表、双(向)链表、循环链表链接方式上的区别3.4 单链表上实现的建表、查找、插入和删除4. 顺序表和链表的比较4.1 顺序表和链表的主要优缺点4.2 针对线性表上所需要执行的主要操作,知道选择顺序表还是链表作为其存储结构才能取得较优的时空性能第三章栈和队列1.栈的逻辑结构、存储结构及其相关算法1.1 栈的逻辑结构特点,栈与线性表的异同1.2 顺序栈和链栈上实现的进栈、退栈等基本算法1.3 栈的“上溢”和“下溢”的概念及其判别条件2. 队列的逻辑结构、存储结构及其相关算法2.1 队列的逻辑结构特点,队列与线性表的异同2.2 顺序队列(主要是循环队列)和链队列上实现的入队、出队等基本算法2.3 队列的“上溢”和“下溢”的概念及其判别条件2.4 使用数组实现的循环队列取代普通的顺序队列的原因2.5 循环队列中对边界条件的处理方法3. 栈和队列的应用3.1 栈和队列的特点,什么样的情况下能够使用栈或队列3.2 表达式求值的算法思想,及栈变化情况。
第四章串、数组和广义表1.串1.1 串的有关概念及基本运算1.2 串与线性表的关系2.多维数组2.1 多维数组的逻辑结构特征2.2 多维数组的顺序存储结构及地址计算方式2.3 数组是一种随机存取结构的原因2.4 矩阵的压缩存储(对称矩阵、三角矩阵、稀疏矩阵)的表示方式和对应的地址计算方式。
《数据结构》复习资料

《数据结构》复习资料《数据结构》复习资料1⼀、选择题1. ⼀棵⼆叉树中第6层上最多有()个结点。
A. 2B. 31C. 32D. 642. 顺序表中数据元素的存取⽅式为()。
A. 随机存取B. 顺序存取C. 索引存取D. 连续存取3. 设有⽆向图G=(V,E),其中顶点集合V={a,b,c,d,e,f},边集合E={(a,b), (a,e), (a,c), (b,e), (c,f), (f,d), (e,d)}。
对G进⾏深度优先遍历,正确的遍历序列是()。
A. a,b,e,c,d,fB. a,c,f,e,b,dC. a,e,b,c,f,dD. a,e,d,f,c,b4. 在待排元素序列基本有序的前提下,效率最⾼的排序⽅法是()。
A. 插⼊B. 选择C. 快速D. 归并5. 设表中含100个数据元素,⽤折半查找法进⾏查找,则所需最⼤⽐较次数为()。
A. 50B. 25C. 10D. 76. 设哈希表地址范围为0~19,哈希函数H(key)=key%17,使⽤⼆次探测再散列法处理冲突。
若表中已存放有关键字值为6、22、38、55的记录,则再放⼊关键字值为72的记录时,其存放地址应为()。
A. 2B. 3C. 4E. 8F. 以上都不对7. 设对下图从顶点a出发进⾏深度优先遍历,则()是可能得到的遍历序列。
A. acfgdebB. abcdefgC. acdgbefD. abefgcd8. 若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序⽅法是()。
A. 快速排序B. 堆排序C. 归并排序D. 直接插⼊排序9. 设有⼀组关键字值(46,79,56,38,40,84),则⽤堆排序的⽅法建⽴的初始堆为()。
A. 79,46,56,38,40,84B. 84,79,56,38,40,46C. 84,79,56,46,40,38D. 84,56,79,40,46,3810. 设⼴义表L=((a,()),b,(c,d,e)),则Head(Tail(Tail(L)))的值为()。
数据结构复习提纲。带所有答案

数据结构复习提纲一,选择题1.数据结构是指(A)。
A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(C)。
A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构3.设语句x++的时间是单位时间,则以下语句的时间复杂度为(B)。
for(i=1; i<=n; i++)for(j=i; j<=n; j++)x++;A.O(1)B.O(2n)C.O(n)D.O(3n)4.计算机内部数据处理的基本单位是(B)。
A.数据B.数据元素C.数据项D.数据库-------25.在一个长度为n的顺序表中删除第i个元素(1<=i<=n)时,需向前移动A个元素。
A.n-i B.n-i+l C.n-i-1 D.i6. 线性表采用链式存储时,其地址___ D___。
A.必须是连续的B.一定是不连续的C.部分地址必须是连续的D.连续与否均可以7.从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较__C个元素结点。
A.n/2 B.n C.(n+1)/2 D.(n-1)/2 8.在双向循环链表中,在p所指的结点之后插入s指针所指的结点,其操作是D __。
A. p->next=s; s->prior=p;p->next->prior=s; s->next=p->next;B. s->prior=p; s->next=p->next;p->next=s; p->next->prior=s;C. p->next=s; p->next->prior=s;s->prior=p; s->next=p->next;D. s->prior=p; s->next=p->next;p->next->prior=s; p->next=s;9.设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为A。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》复习资料
一、填空题
1.设二维数组B[10][10]是对称矩阵,存储其下三角中的元素,按行
优先存储,每个元素占4个单元,B[0,0]的地址是1000,则B[4,7]的地址是 1128 。
2.一个具有6个顶点的连通无向图至多有 15 条边。
3.装载因子是散列表的一个重要参数,它反映了散列表的装满程度。
4.已知图G=(V,E),其中V={v1, v2, v3, v4, v5},E={<v1,v2>,
<v2,v4>, <v1,v3>, <v2,v5>, <v3,v4>, <v4,v5>},对图G进
行拓扑排序所得到的结点序列为 v1、v2、v3、v4、v5 ,顶
点v4的入度为 2 。
5.去除广义表LS=(a1,a2,a3,……,an)中第1个元素,由其余元素
构成的广义表称为LS的表尾。
6.已知一棵二叉树的中序序列为ACBD,后序序列为CDBA,则它的前
序序列为 ABCD 。
7.散列存储中,冲突指的是不同的关键字经过同一个哈希函数的映
射后,得到相同的哈希地址。
8.一棵二叉树中有36个叶子结点,仅有一个孩子的结点有21个,则
这棵二叉树共有 92 个结点。
9.索引文件由文件数据区和索引表组成。
10.用边表示活动的网络(AOE网)的关键路径是指从源点到终点
的路径长度最长的路径。