数据结构综合练习

合集下载

数据结构综合复习题

数据结构综合复习题

∑∑∑====n 1i n 1j 3n 1k n 162)1)(n n(n 21)n(n 2161)1)(2n n(n 21 i 21i 2121)i(i j 1n 1i n1i n 1i 2n 1i i 1j n 1i i 1j j 1k ++=++++==+=⎪⎭⎫ ⎝⎛+==∑∑∑∑∑∑∑∑========第一章 综合练习2.什么是数据结构? 有关数据结构的讨论涉及哪三个方面?【解答】数据结构是指数据以及相互之间的关系。

记为:数据结构 = { D, R }。

其中,D 是某一数据对象,R 是该对象中所有数据成员之间的关系的有限集合。

有关数据结构的讨论一般涉及以下三方面的内容:① 数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构; ② 数据成员及其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为存储结构;③ 施加于该数据结构上的操作。

数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储不是一码事,是与计算机存储无关的。

因此,数据的逻辑结构可以看作是从具体问题中抽象出来的数据模型,是数据的应用视图。

数据的存储结构是逻辑数据结构在计算机存储器中的实现(亦称为映像),它是依赖于计算机的,是数据的物理视图。

数据的操作是定义于数据逻辑结构上的一组运算,每种数据结构都有一个运算的集合。

例如搜索、插入、删除、更新、排序等。

5.设n 为正整数, 分析下列各程序段中加下划线的语句的程序步数。

(1) for (int i=1;i<=n ;i++)for (int j=1;j<=n ;j++){ c[i][j]=0.0;for (int k=1;k<=n ;k++)c[i][j]=c[i][j]+a[i][k]*b[k][j];}(2) x=0; y=0;for (i=1;i<=n ;i++)for (j=1;j<=i ;j++)for (k=1;k<=j ;k++)x=x+y ;(3) i=1; j=1;while (i<=n&&j<=n){ i=i+1; j=j+i ; }(4) i=1;do {for (j=1;j<=n ;j++) i=i+j ;} while (i<100+n);【解答】(1) (2)n j 1n j 1n(n 1)x 1 i 1j 12n(n 1)n(n 1)n(n 1)n(n 1)x 2 i 1j 1122222==+==+=+++++⎛⎫⎛⎫⎛⎫==++=++=+ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭∑∑次数时,时,n j 1n(n 1)n(n 1)x 3, i 12j 1322=⎛+⎫+⎛⎫⎛⎫==++=+ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭∑时(3) i = 1时,i = 2,j = j + i = 1 + 2 = 2 + 1,i = 2时,i = 3,j = j + i = ( 2 + 1 ) + 3 = 3 + 1 + 2,i = 3时,i = 4,j = j + i = ( 3 + 1 + 2 ) + 4 = 4 + 1 + 2 + 3,i = 4时,i = 5,j = j + i = ( 4 + 1 + 2 + 3 ) + 5 = 5 + 1 + 2 + 3 + 4,……i = k 时,i = k + 1,j = j + i = ( k + 1 ) + ( 1 + 2 + 3 + 4 + … + k ),解出满足上述不等式的k 值,即为语句i = i + 1的程序步数。

《数据结构》综合练习

《数据结构》综合练习

综合练习一、单项选择题1.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(C ).A.存储结构B。

逻辑结构C.链式存储结构D。

顺序存储结构2.设语句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)3.链式存储结构的最大优点是( D )。

A。

便于随机存取B。

存储密度高C.无需预分配空间D.便于进行插入和删除操作4.假设在顺序表{a0,a1,……,a n-1}中,每一个数据元素所占的存储单元的数目为4,且第0个数据元素的存储地址为100,则第7个数据元素的存储地址是( D ).A。

106 B. 107 C。

124 D.1285.在线性表中若经常要存取第i个数据元素及其前趋,则宜采用( A )存储方式.A.顺序表B. 带头结点的单链表C。

不带头结点的单链表 D. 循环单链表6.在链表中若经常要删除表中最后一个结点或在最后一个结点之后插入一个新结点,则宜采用( C )存储方式。

A.顺序表B。

用头指针标识的循环单链表C。

用尾指针标识的循环单链表D。

双向链表7.在一个含有n个结点的有序单链表中插入一个新结点,使单链表仍然保持有序的算法的时间复杂度是( C )。

O(1) B。

O(log2n) C。

O(n) D。

O(n2)8.要将一个顺序表{a0,a1,……,a n—1}中第i个数据元素a i(0≤i≤n—1)删除,需要移动( B )个数据元素。

A.i B。

n—i-1 C. n-i D. n—i+19.在栈中存取数据的原则是( B )。

A。

先进先出 B。

先进后出C。

后进后出 D。

没有限制10.若将整数1、2、3、4依次进栈,则不可能得到的出栈序列是( D )。

A.1234 B. 1324 C. 4321 D. 142311.在链栈中,进行出栈操作时(B )。

数据结构(本)期末综合练习(2013年6月)

数据结构(本)期末综合练习(2013年6月)

数据结构(本)期末综合练习2013年6月期末综合练习一1. 在数据结构和算法中,与所使用的计算机有关的是()。

A.数据元数间的抽象关系B.数据的存储结构C.算法的时间复杂度 D.数据的逻辑结构2. 一种逻辑结构在存储时()。

A.只要存储数据元素间的关系 B.只能采用一种存储结构C.可采用不同的存储结构 D.只要存储数据元素的值3 .对顺序表,以下叙述中正确的是 ( )。

A.用一组地址连续的存储单元依次存放线性表的数据元素B.各个数据元素的首地址是连续的C.数据元素不能随机访问D.插入操作不需要移动元素4 .对链表, 以下叙述中正确的是()。

A.不能随机访问任一结点 B.结点占用的存储空间是连续的C.插入删除元素的操作一定要要移动结点 D.可以通过下标对链表进行直接访问5.设有一个长度为25的顺序表,要删除第10个元素(下标从1开始),需移动元素的个数为()。

A.9 B.10 C.15 D.166.线性表在存储后,如果相关操作是:要求已知第i个结点的位置访问该结点的前驱结点,则采用()存储方式是不可行的。

A.单链表 B.双链表 C.单循环链表 D.顺序表7. 设单向链表中,指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为( )。

A.p->next=p->next->next;B.p=p->next;C.p=p->next->next;D.p->next=p ;8.栈和队列的共同特点是()。

A.都是先进后出 B.元素都可以随机进出C.只容许在端点处插入和删除元素 D.都是先进先出9.元素1,3,5,7按顺序依次进栈,按该栈的可能输出序列依次入队列,该队列的可能输出序列是()。

(进栈出栈可以交替进行)。

A.7,5,3,1 B.7,3,1,5C.7,5,1,3 D.5,1,3,710.元素2,4,6,8按顺序依次进栈,按该栈的的可能输出序列依次入队列,该队列的可能输出序列是()(进栈出栈可以交替进行)。

数据结构(本)期末综合练习(2022年6月)

数据结构(本)期末综合练习(2022年6月)

数据结构(本)期末综合练习(2022年6月)期末综合练习一一、单项选择题1.深度为5的完全二叉树共有20个结点,则第5层上有()个结点(根所在结点为第一层)。

A.3B.8C.5D.62.同一种逻辑结构()。

A.只能有唯一的存储结构B.可以有不同的存储结构C.只能表示某一种数据元素之间的关系D.以上三种说法均不正确3.已知一个图的边数为m,则该图的所有顶点的度数之和为()。

A.2mB.mC.2m+1D.m/24.链表所具备的特点是()。

A.可以随机访问任一结点B.占用连续的存储空间C.插入删除元素的操作不需要移动元素结点D.可以通过下标对链表进行直接访问5.数据结构中,与所使用的计算机无关的是数据的()结构。

A.物理B.存储C.逻辑与物理D.逻辑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.散列查找的原理是()。

A.在待查记录的关键字值与该记录的存储位置之间建立确定的对应关系B.按待查记录的关键字有序的顺序方式存储C.按关键字值的比较进行查找D.基于二分查找的方法12.算法的时间复杂度与()有关。

A.所使用的计算机B.与计算机的操作系统C.与算法本身D.与数据结构13.对n个元素进行冒泡排序若某趟冒泡中只进行了()次元素间的交换,则表明序列已经排好序。

A.1B.2C.0D.n-114.设有一个长度为n的顺序表,要删除第i个元素需移动元素的个数为()。

数据结构(本科)期末综合练习一(单选题)

数据结构(本科)期末综合练习一(单选题)

20. 在一个长度为n的顺序表中删除一个值为x的元素时,需要比较元素和移动元素的总次数为( )。
A. (n+1)/2 B. n/2 C. n D. n+1
21. 在一个长度为n的顺序表的表尾插入一个新元素的渐进时间复杂度为( )。
for(int j=1; j<=i; j++) S;
A. n2 B. n2/2 C. n(n+1) D. n(n+1)/2
5. 下面算法的时间复杂度为( )。
int f(unsigned int n) {
C. p->link=p; D. p=p->link->link;
33. 非空的循环单链表first的尾结点(由p所指向)满足的条件是( )。
A. p->link==NULL; B. p==NULL;
A. n-i B. n-i+1 C. n-i-1 D. i
19. 在一个长度为n的顺序表中删除第i个元素(0≤i≤n-1)时,需要从前向后依次前移( )个元素。
A. n-i B. n-i+1 C. n-i-1 D. i
8. 当需要进行标准I/O操作时,则应在程序文件中包含iostream.h头文件,当需要进行文件I/O操作时,则应在程序文件中包含( )头文件。
A.fstream.h B.stdlib.h C.iomanip.h D.string.h
C. p->link==first; D. p==first;
34. 设单循环链表中结点的结构为(data, link),且rear是指向非空的带表头结点的单循环链表的尾结点的指针。若想删除链表第一个结点,则应执行的操作是( )。

大数据结构(本)期末综合练习

大数据结构(本)期末综合练习

数据结构(本)期末综合练习综合练习一一、单项选择题1.设有头指针为head的带有头结点的非空单向循环链表, 指针p指向其尾结点, 要删除头结点,并使其仍为单向循环链表,则可利用下述语句head =head->next ;()。

A.p =head; B.p=NULL; C.p->next =head; D.head=p;2.在一个单链表中p指向结点a, q指向结点a的直接后继结点b,要删除结点b,可执行()。

A.p->next=q->next ; B.p=q->next;C.p->next=q; D.p->next=q;3. 以下说法不正确的是A. 线性表的链式存储结构不必占用连续的存储空间B.一种逻辑结构只能有唯一的存储结构C. 一种逻辑结构可以有不同的存储结构D.线性表的顺序存储结构必须占用连续的存储空间4.在一个单向链表中,在p所指结点之后插入一个s所指的结点时,可执行();和p->next=s;A.p= s; B. p->next=s->next;C.p=s->next; D. s->next=p->next;5.把数据存储到计算机中,并具体体现( )称为物理结构。

A. 数据元素间的逻辑关系B.数据的处理方法C.数据的性质D.数据的运算6.设有一个长度为23的顺序表,要删除第8个元素需移动元素的个数为()。

A.16 B.14 C.15 D.137.链表所具备的特点之一是()。

A.可以随机访问任一结点 B.需要占用连续的存储空间C.插入元素的操作不需要移动元素 D.删除元素的操作需要移动元素8.设一棵有8个叶结点的二叉树,度数为1的结点有3个,则该树共有()个结点。

A.20 B.18 C.17 D.169.图状结构中数据元素的位置之间存在()的关系。

A.一对一 B.多对多C.一对多 D.每一个元素都有一个直接前驱和一个直接后继10.一棵具有5层的完全二叉树,最后一层有4个结点,则该树总共有()个结点。

国家开放大学《数据结构(本)》综合练习题参考答案

国家开放大学《数据结构(本)》综合练习题参考答案
10.元素 111,113,115,117 按顺序依次进栈,则该栈的不可能输出序列是( ) (进栈出栈可以交替进行)。
A. 111,113,115,117 B. 117,115,111,113 C. 117,115,113,111 D. 113,111,117,115 11.图状结构中数据元素的位置之间存在( )的关系。 A. 每一个元素都有一个且只有一个直接前驱和一个直接后继 B. 多对多 C. 一对一 D. 一对一 12.以下说法正确的是( )。 A. 栈和队列的特点都是后进后出 B. 队列的特点是先进后出 C. 栈的特点是先进先出 D. 栈的特点是先进后出 13.一个单链表中,在 p 所指结点之后插入一个 s 所指的结点时,可执行: s->next=p->next;和( )。 A. s=p->next; B. p=s->next;
国家开放大学《数据结构(本)》综合练习题参考答案
一、填空题 1.对稀疏矩阵进行压缩存储,可采用三元组表,一个有 10 行的稀疏矩阵 A 共有 97 个零元素,其相应的三元组表共有 3 个元素。该矩阵 A 有(10)列。 2.结构中的数据元素存在多对多的关系称为(图状)结构。 3.在单向链表中,q 指向 p 所指结点的直接后继结点,要删除 q 所指结点,可以 用操作(p->next;)= q->next;。 4.n 个元素进行冒泡法排序,第 j 趟冒泡要进行(n-j)次元素间的比较。 5.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的行 下标、列下标和(数组元素)三项信息。 6.中序遍历(二叉排序树)树可得到一个有序序列。 7.队列的操作特点是后进(后出)。 8.待排序的序列为 8,3,4,1,2,5,9,采用直接选择排序算法,当进行了两 趟选择后,结果序列为(1,2,4,8,3,5,9)。 9.n 个元素进行冒泡法排序,通常需要进行(n-1)趟冒泡。 10.广义表((a,b),d,e((i,j),k))的长度是(4) 。 11.中序遍历二叉排序树可得到一个(有序)的序列。 12.广义表的(c,a,(a,b),d,e,((i,j),k))深度是(3)。 13.广义表(c,a,(a,b),d,e,((i,j),k))的长度是(6)。 14.对稀疏矩阵进行压缩存储,可采用三元组表,一个有 10 行 10 列的稀疏矩阵 A 共有 95 个零元素,其相应的三元组表共有(5)个元素。 15.广义表的(c,a,(a,b),d,e,((i,j),k))深度是(3)。 16.在对一组记录(50,49,97,22,16,73,65,47,88)进行直接插入排序 时,当把第 7 个记录 65 插入到有序表时,为寻找插入位置需比较(3)次。 17. 循 环 队 列 在 规 定 少 用 一 个 存 储 空 间 的 情 况 下 , 队 空 的 判 定 条 件 为 (front==rear)。 18.一棵有 5 个叶结点的哈夫曼树,该树中总共有(9)个结点。 19.c 语言中,字符串“E”存储时占(2)个字节。

数据结构综合练习题(答案)

数据结构综合练习题(答案)

数据结构综合练习题一、简答题:1、简述堆栈和队列两种数据类型的异同点。

栈和队列都是线性结构,可以在向量的任何位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入和队首删除元素。

2、什么静态查找表和动态查找表。

静态查找表——仅作查询和检索操作的查找表。

动态查找表——在查询之后,还需要将“查询”结果为“不在查找表中”的数据元素插入到查找表中;或者,从查找表中删除其“查询”结果为“在查找表中”的数据元素。

3、试比较顺序存储结构和链式存储结构的优缺点。

在什么情况下用顺序表比链表好?答:① 顺序存储时,相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的。

优点:存储密度大(=1),存储空间利用率高。

缺点:插入或删除元素时不方便。

②链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针优点:插入或删除元素时很方便,使用灵活。

缺点:存储密度小(<1),存储空间利用率低。

顺序表适宜于做查找这样的静态操作;链表宜于做插入、删除这样的动态操作。

若线性表的长度变化不大,且其主要操作是查找,则采用顺序表;若线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。

4、分析稳定的排序和不稳定的排序方法。

假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,ri=rj,且ri在rj之前,而在排序后的序列中,ri仍在rj之前,则称这种排序算法是稳定的;否则称为不稳定的。

5、图的存储结构有哪些?十字链表,邻接矩阵,邻接表,邻接多重表,二维数组。

6、简述度为2的树与二叉树的区别。

二叉树的度最大为2,而树的度无此限制。

在二叉树中,一个节点的子树有左、右之分,不能互换位置。

而度为2的树则无此限制。

三、程序分析写结果:1、写出下列程序段的输出结果(栈的元素类型为char;字符型)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

练习
1. 下图表示一个地区的通讯网,边表示城市间的通讯线路,边上的权表示架设线路花费的代价,如何选择能沟通每个城市且总代价最省的n-1条线路,画出所有可能的选择。

2. 已知带权无向图G 的邻接矩阵是A 。

(1) 分别画出一颗从V1出发的深度优先生成树和广度优先生成树;
(2) 画出一棵最小生成树。

问题解析:
A= 6 0 5 0 0 4
0 5 0 6 0 0
0 0 6 0 0 7
6 0 0 0 0 2
3 4 0 7 2 0
0 6 0 0 6 3
V1 V2 V3 V4 V5 V6
1. N 个元素可能出栈序列个数?
设有n 个元素进栈,请给出全部的可能的出栈序列个数和不可能的出栈序列个数。

解:
设全部可能的出栈序列个数为n b ,
!!)!
2(11112n n n n C n b n n n ⋅+=+=
对n 个元素的组成的序列,全部可能的排列数!n P n =,所以不可能的出栈序列的个数为
n n b P -。

相关文档
最新文档