2013年秋季期计算机学院数据结构期中考试卷

合集下载

数据结构试卷(期中考试)

数据结构试卷(期中考试)

第页/共 页 《数据结构》期中考试试卷一、选择题(每题2分,共40分)1.组成数据的基本单位是【 】。

A .数据项B .数据类型C .数据元素D .数据变量 2.线性表采用链式存储时,结点的存储地址【 】。

A .必须是不连续的 B .连续与否均可C .必须是连续的D .和头结点的存储地址相连续3. 有一个含头结点的单链表,头指针为head ,判断其是否为空的条件为【 】。

A .head==NULL B . head->next==NULL C .head->next==head D .head!=NULL 4.算法分析的目的是【 】。

A .辨别数据结构的合理性B .评价算法的效率C .研究算法中输入与输出的关系D .鉴别算法的可读性5.已知指针p 所指结点不是尾结点,若在*p 之后插入结点*s ,则应执行下列哪一个操作?【 】。

A. s->next = p ; p-> next = s ;B. s-> next = p-> next ; p-> next = s ;C. s-> next = p-> next ; p = s ;D. p-> next = s ; s-> next = p ; 6.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可 能出现的出栈序列为【 】。

A .3,2,6,1,4,5B .5,6,4,2,3,1C .1,2,5,3,4,6D .3,4,2,1,6,5 7.一个元素进入队列的时间复杂度是【 】。

A O(1)B O(n)C O(n 2)D O(log 2n) 8.数组A[1..5,1..6]的每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为【 】。

A 1140 B 1145 C 1120 D 1125 9.链表不具有的特点是【 】。

数据结构期中考试题

数据结构期中考试题

数据结构期中考试题一、选择题1. 数据结构是()的研究。

A. 算法B. 数据C. 硬件D. 软件2. 下列哪种数据结构在插入和删除操作时效率较高?A. 数组B. 链表C. 栈D. 队列3. 以下哪种数据结构使用了先进先出(FIFO)的策略?A. 栈B. 队列C. 链表D. 数组4. 在二叉树中,每个节点最多可以有几个子节点?A. 0B. 1C. 2D. 35. 以下哪种数据结构在查找操作时效率较高?A. 数组B. 链表C. 栈D. 二叉树二、简答题1. 请简要介绍栈(Stack)和队列(Queue)的特点及应用场景。

2. 请解释树(Tree)和图(Graph)的区别,并给出它们各自的应用场景。

3. 请描述二叉树(Binary Tree)的特点并给出一个示例图。

4. 请简要介绍哈希表(Hash Table)的原理及其在实际应用中的优势。

三、编程题1. 设计一个栈,使得它具有以下功能:- push(val):将元素val压入栈中。

- pop():弹出栈顶元素,并返回弹出的元素。

- getMin():返回栈中最小的元素。

2. 设计一个队列,使得它具有以下功能:- push(val):将元素val插入队列中。

- pop():移除并返回队列头部的元素。

- peek():返回队列头部的元素。

- empty():检查队列是否为空。

四、综合题某公司需要设计一个学生信息管理系统,主要功能包括添加学生信息、查询学生信息、删除学生信息以及修改学生信息。

请使用合适的数据结构和算法来实现该系统,并说明你的选择理由。

总结:通过本次期中考试题,我们从选择题、简答题到编程题,对数据结构的基本知识和应用有了更深入的了解。

数据结构在计算机科学中扮演着重要的角色,合理的选择和运用数据结构可以提高程序的效率和性能。

希望大家能够加强对数据结构的学习和应用,为解决实际问题提供更有效的解决方案。

数据结构期中笔试题答案

数据结构期中笔试题答案

《数据结构》期中考试题答案一、填空题(20分,每题2分)1.逻辑结构、存储结构2.便于插入和删除操作3.方便运算的实现4.算法执行过程中所需要的基本运算次数5.存储结构6.q.next=p.next ; p.next=q7.递归算法8.抽象类或接口二、选择题(30分,每题2分)AACBB BDDCB AACAC三、问答题(50分,每题10分)1.什么是栈和队列?两者有何异同?答:栈和队列都属于线性表结构,它们是两种特殊的线性表,栈的插入和删除操作都在线性表的一端进行,所以栈的特点是“后进先出”;而队列的插入和删除操作分别在线性表的两端进行,所以队列的特点是“先进先出”。

2.采用顺序存储结构的栈和队列,在进行插入、删除操作时需要移动数据元素吗?为什么?答:采用顺序存储结构的栈和队列,在进行插入、删除操作时不需要移动数据元素,因为栈和队列均不能进行中间插入、删除操作。

3.什么是队列的假溢出?为什么顺序存储结构队列会出现假溢出?怎样解决队列的假溢出问题?链式存储结构队列会出现假溢出吗?答:顺序队列,当入队的元素个数(包括已出队元素)超过数组容量时,队列尾下标越界,数据溢出。

此时,由于之前已有若干元素出队,数组前部已空出许多存储单元,所以,这种溢出并不是因存储空间不够而产生的,称之为假溢出。

顺序队列之所以会产生假溢出现象,是因为顺序队列的存储单元没有重复使用机制。

解决的办法是将顺序队列设计成循环结构。

链式存储结构队列不会出现假溢出。

因为每次元素入队,都要申请新结点,数据不会溢出。

4.答案:(1) (a2, a4, …, ) (2)将单链表中偶数结点位置的元素值写入顺序表list5.数据的存储结构有哪两种,各有什么特点?答:数据存储结构的基本形式有两种:顺序存储结构和链式存储结构。

顺序存储结构使用一组连续的内存单元依次存放数据元素,元素在内存中的物理存储次序与它们的逻辑次序相同。

链式存储结构使用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据元素在物理位置上不一定相邻,数据元素间的关系需要采用附加信息特别指定。

数据结构期中测试

数据结构期中测试

《数据结构》期中测试试题一、名词解释1.数据结构2.顺序表3.栈的链式存储结构4.顺序队列二、判断题1.数据元素是最小项。

2.算法就是程序。

3.从逻辑关系上讲,数据结构主要分为两大类:线性结构和非线性结构。

4.线性表若采用链式存储表示时,所有存储结点之间的地址可连续、可不连续。

5.在顺序表中,逻辑上相邻的元素在物理位置上不一定相邻。

6.栈和队列都是特殊的线性表。

7.栈和队列都将插入和删除操作限制在表的端点处进行。

8.只允许在表的一端进行插入和删除操作的线性表称为栈。

9.只要栈不空,就能任意删除栈的元素。

10.对采用链式存储结构的栈进行操作不必判断溢出。

三、填空题1.算法的一个特性是______,即针对一组确定的输入,算法应始终得出一组确定的结果。

2.数据是_____的载体,它能够被计算机程序识别、______和加工处理。

3.数据结构包括_____、______和数据的运算三方面。

4.数据结构的逻辑结构包括______结构和______结构两大类。

5.线性表采用______存储结构时,其存储地址通常必须是连续的,采用_____存储结构时,其存储地址连续与否均可以。

6.已知顺序表长度为n,在i位置插入一个元素需要移动_____个元素,把i位置的元素删除需要移动______个元素。

7.已知单向链表head,在p指针所指向的结果后插入一个元素使用的操作为____。

8.栈和队列的逻辑结构都是______结构。

9.当栈的最大长度难以估计时,栈最好采用______存储结构。

10.在具体的程序设计过程中,栈的顺序存储结构一般是利用一个____描述的,同时还要定义一个整形变量来______。

四、综合题1.计算算法的时间复杂度2.编写算法for(i=0;i<n;i++) (1)编写算法实现将任意十进制整数转换为非十进制数。

for(j=0;j<n;j++) (2)编写算法求单链表的长度。

a++;。

数据结构期中考试题

数据结构期中考试题

一、单项选择题(每小题3分,共30分)1、线性结构是数据元素之间存在的一种_______。

A、一对多关系B、多对多关系C、多对一关系D、一对一关系2、以下数据结构中,哪一个不是线性结构()A.生成树 B. 顺序栈 C. 单链表 D. 循环队列3、设n是偶数,则运行下列程序段的时间复杂度为()。

x=100;for(p=2;p<=n;p++)for(q=2*i;q<=n;q++)x=(x+1)*3;A.O(1) B.O(n) C.O(n2) D.O(lbn)4、若频繁地对线性表进行插入和删除操作,该线性表应该采用——存储结构。

A、散列B、顺序C、链式D、索引5、在非空双向循环链表中由q所指的链结点后面插入一个由p所指的链结点的动作依次为:p->llink=Q;p->rlink=q->rlink;q->rlink=p;_______.(空白处为一条赋值语句) A、q->llink=p B、q->rlink->llink=pC、p->rlink->llink=pD、p->llink->llink=p6、设循环队列的结构是:const int Maxsize=100;typedef int Data Type;typedef struct {Data Type data[Maxsize];Int front, rear;} Queue;若有一个Queue类型的队列Q,试问判断队列满的条件应是下列哪一个语句()A 、Q.front= = Q.rear; B、 Q.front - Q.rear= = Maxsize;C、Q.front + Q.rear= = Maxsize;D、 Q.front= = (Q.rear+1)% Maxsize;7、已知L是一个不带表头的单链表, 在表首插入结点*p的操作是()。

A. p = L; p->next = L;B. p->next = L; p = L;C. p->next = L; L = p;D. L = p; p->next= L;8、下面关于串的叙述中,哪一个是不正确的?( )A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储9、若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( )。

数据结构中期考试试卷

数据结构中期考试试卷

《数据结构》期中考试试卷(供2012级计算机专业用)一、单项选择题,在括号内填写所选择的标号(每小题1分,共20分)1、算法指的是()A.计算机程序B.解决问题的计算方法C.排序算法D.解决问题的有限运算序列2、如下陈述中正确的是()A.串是一种元素仅为字符的线性表 B.串的长度必须大于零C.串中元素只能是字母D.空串就是空白串3、在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为()。

A. O(1)B. O(n2)C. O(n)D. O(n/2)4、当利用大小为n的数组顺序存储一个队列时,该队列的最大长度为()。

A. n-2B. n-1C. nD. n+15.用链表表示线性表的优点是()。

(A)便于随机存取(B)花费的存储空间较顺序存储少(C)便于插入和删除(D)数据元素的物理顺序与逻辑顺序相同6.在少用一个元素空间的循环队列QU ( m0为最大队列长度(以元素为单位),front和rear 分别为队列的队头指针和队尾指针) 中,当队列非空时,若插入一个新的数据元素,则其队尾指针rear的变化是( )。

A.QU->rear==(QU->front+1) % m0B.QU->rear==(QU->rear+1) % m0C.QU->rear==(QU->front+1) D.QU->rear==(QU->rear+1)7.设有S1=“ABCDEFG”,S2=“PQRST”,函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,len(s)返回串s的长度,则con(subs(S1,2,len(S2)),subs(S1,len(S2),2))的结果是( )。

A.BCDEF B. BCDEFG C. BCPQRST D. BCDEFEF8、在一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需平均比较()个元素结点。

数据结构期中考试试卷参考答案

数据结构期中考试试卷参考答案

数据结构期中考试试卷参考答案1徐州师范大学期中试卷课程名称:数据结构与算法一、单项选择1. B2. A3. B4. C 5. A 6. D 7. C 8. C 9. B 10. D 11. A 12. B 13. C 14. D 15. A 16. C 17. A 18. A 19. D 20. B二、名词解释1. 数据:是所有能被输入到计算机中,且能被计算机处理的符号的集合。

它是计算机操作的对象的总称,也是计算机处理的信息的某种特定的符号表示形式。

2. 算法:通常把具体存储结构上的操作实现步骤或过程称为算法。

3. 递归:在定义一个过程或函数时出现调用本过程或本函数的成分,称之为递归4. 时间复杂度:通常把算法中包含基本运算次数的多少称为算法的时间复杂度,也就是说,一个算法的时间复杂度是指该算法的基本运算次数。

5. 数组:数组是n(n >1)个相同类型数据元素a1,a2,…,an 构成的有限序列,且该有限序列存储在一块地址连续的内存单元中。

三、填空题(每题1分,共10分)1.有穷性、确定性、可行性、输入、输出2. n/2 插入或删除位置3. __O(1) __。

4. 以行序为主序和以列序为主序两种方式。

5. 数据数据元素。

6.元素之间逻辑关系的信息7. 长度各个对应位置上的字符 8.一定不一定。

9.头指针头结点的指针.直接前驱结点指针。

10.数据元素及其关系四、简答题1.答案:(1)结点存储密度。

顺序:结点中只有自身信息域,没有链接信息域,故存储密度大;链式:结点中除自身信息外,还有表示连接信息的指针域,存储密度小。

(2)随机存取。

顺序:可随机访问,直接存取第i 个结点信息;链式:不能随机访问.(3)插入和删除。

顺序:插入、删除,会引起大量结点的移动。

链式:插入、删除灵活方便,不必移动结点,只要改变结点中的指针值即可。

(4)预先分配存储单元.顺序:按最大预分配,存储空间利用率不高;链式:不需要预分配空间,所以存储空间利用率高。

2012 ~ 2013学年第二学期-数据结构期中试卷_北理珠(2013-5-11)

2012 ~ 2013学年第二学期-数据结构期中试卷_北理珠(2013-5-11)

A. SA+141B. SA+180C. SA+186D. SA+2107、用无回溯的模式匹配法(KMP法)求串“ababab”的next[j]的值为()。

A. 010101B. 011221C. 011233D. 011234C.可链接存储D. 数据元素可以是多个字符8、链表不具有的特点是()。

A. 可随机访问任一元素B. 插入删除不需要移动元素C. 不必事先估计存储空间D. 所需空间与线性表长度成正比9、中缀表达式A*(B+C)/(D-E+F)的后缀表达式是()。

A. A*B+C/D-E+FB. AB*C+D/E-F+C. ABC+*DE-F+/D. ABCDEF*+/-+10、已知输入序列为abcd,经过输出受限的双端队列后能得到的输出序列是()。

A. dacbB. cadbC. dbcaD. 以上都不是二、填空题(每空2.5分,共25分)【得分:】1、有如下递归函数:int func(int n){if(n<2) return(n);else return(func(n-1)+func(n-2));}执行语句printf(“%d\n”,func(4));的结果是。

2、若一个算法中的语句频度之和为T(n)=3n+n*log2n+n2,则算法的时间复杂度为O(_ ___)。

3、不带头结点的单链表head为空的条件是。

4、假设为循环队列分配的向量空间为Q[20](下标从0开始),若队列的长度和队头指针值分别为13和17,则当前队尾指针的值为。

5、将一个A[15][15]的对称矩阵采用只存储下三角中元素的压缩存储(第一个元素为A[0][0]),按行优先存入一维数组B[120]中,A中元素[3][7]在B 数组中的位置为。

6、广义表运算式HEAD(TAIL((a,b,c),(x,y,z)))的结果是。

7、已知L是带头结点的非空单链表,删除首元结点的三条语句为:P=L->next;;free(P);8、表长为N的顺序表,当在任何位置上插入或删除一个元素的概率相等时,第2页共7页第 3 页 共 7 页……………………………………………装………………………………订…………………………线……………………………………………………此处不能书写此处不能书写此处不能书写 此处不能书写此处不能书写 此处不能书写此处不能书写插入一个元素所需移动元素的平均次数为: ;删除一个元素需要移动的元素个数为: 。

数据结构期中试题库及答案

数据结构期中试题库及答案

一、判断题:1、线性表的逻辑顺序与物理顺序总是一致的。

()2、线性表的顺序存储表示优于链式存储表示。

()3、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。

()4、二维数组是其数组元素为线性表的线性表。

()5、每种数据结构都应具备三种基本运算:插入、删除和搜索。

()6、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个方面。

()7、线性表中的每个结点最多只有一个前驱和一个后继。

()8、线性的数据结构可以顺序存储,也可以存储。

非线性的数据结构只能存储。

()9、栈和队列逻辑上都是线性表。

()10、单链表从任何一个结点出发,都能访问到所有结点()11、删除二叉排序树中一个结点,再重新插入上去,一定能得到原来的二叉排序树。

()12、快速排序是排序算法中最快的一种。

()13、多维数组是向量的推广。

()14、一般树和二叉树的结点数目都可以为0。

()15、直接选择排序是一种不稳定的排序方法。

()16、98、对一个堆按层次遍历,不一定能得到一个有序序列。

()17、在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。

()18、折半搜索只适用与有序表,包括有序的顺序表和有序的链表。

()19、堆栈在数据中的存储原则是先进先出。

()20、队列在数据中的存储原则是后进先出。

()21、用相邻矩阵表示图所用的存储空间大小与图的边数成正比。

()22、哈夫曼树一定是满二叉树。

()23、程序是用计算机语言表述的算法。

()24、线性表的顺序存储结构是通过数据元素的存储地址直接反映数据元素的逻辑关系。

()25、用一组地址连续的存储单元存放的元素一定构成线性表。

()26、堆栈、队列和数组的逻辑结构都是线性表结构。

()27、给定一组权值,可以唯一构造出一棵哈夫曼树。

()28、只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。

()29、希尔排序在较率上较直接接入排序有较大的改进。

数据结构期中测试题答案

数据结构期中测试题答案

《数据结构》期中测试班级:姓名:学号:一、填空题:1、在数据结构中,从逻辑上可以把数据结构分为集合、线性结构、树形结构和图状结构,其中树形结构和图状结构合称为非线性结构。

数据结构被形式地定义为二元组(D,S),其中D是数据元素的有限集合,S是D上关系的有限集合。

2、算法的五个重要特性是有穷性、确定性、可行性、输入和输出。

3、一个顺序表第一个元素的存储地址是100,每个元素的长度为3,则第6个元素的地址是115。

在顺序表中插入或删除一个元素,需要平均移动(n+1)/2个元素,具体移动的元素个数与插入或删除元素的位置有关。

顺序表中逻辑上相邻的元素的物理位置相邻。

单链表中逻辑上相邻的元素的物理位置不一定相邻。

单链表中,除了首元结点外,任一结点的存储位置由其前驱结点的指针域指示。

在单链表中设置头结点的作用是使第一个结点与其他结点的操作统一。

4、从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较(n+1)/2个结点。

在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是O(n)。

给定有n个元素的线性表,建立一个有序单链表的时间复杂度是O(n2)。

5、已知L是无表头结点的非空单链表,且指针p所指结点既不是首元结点,也不是尾元结点,试从下列提供的答案中选择合适的语句序列。

在p所指结点后插入s所指结点:4、1。

在p所指结点前插入s所指结点:7、11、8、4、1。

在表首插入s所指结点:5、12。

在表尾插入s所指结点:11、9、1、6。

1)p->next=s;2)p->next=p->next->next;3)p->next=s->next;4)s->next=p->next;5)s->next=L;6)s->next=NULL;7)q=p;8)while(p->next!=q) p=p->next;9)while(p->next!=NULL) p=p->next;10)p=q;11)p=L;12)L=s;13)L=p;6、已知指针p所指结点是某双向链表的中间结点,试从下列提供的答案中选择合适的语句序列。

数据结构期中试卷

数据结构期中试卷

数据结构期中试卷(考试时间80分钟, 满分100分)一、填空(2*20=40分)1.数据按逻辑结构可分为___________, __________________和__________________。

2.评价一个算法效率的标准是 __________________和__________________。

3、链式存储中结点分为两个域, 分别是______________和__________________。

4.带头结点的单链表为空表的条件是head->link= =NULL。

5.栈的工作特点是__________________, 队列的工作特点是__________________6、判断环形队列队空的条件是head= =tail, 队满的条件是(tail+1)%MAXN= =head。

7、在顺序存储的线性表中插入、删除一个结点平均移动个结点n/2。

8、有一个400项的表, 若用分块查找法, 则分成____20___块最好。

9、单链表中在p结点后插入q结点的语句为_q->link=p->link,p->link=q。

10、单链表中删除p结点后q结点的语句为p->link=q->link,free(q)。

11.判断带头结点的的环形链表为空表的条件为____head->link= =head____________。

12.二分查找的前提条件是按关键字有序, 分块查找的前提条件是块间有序, 块内有序或无序。

13、广义表中元素若为数据元素则被称为_________, 若为广义表则被称为________________。

二、判断(1*10=10分)1.链式存储结构优于顺序存储结构。

( F )2.顺序存储可实现随机存取。

( T )3.对于链表中元素逻辑相邻则物理也相邻。

( F )4.把中缀表达式转换为后缀表达式时应用的是队列。

( F )5.队列是插入、删除限制在表的两端的线性表。

数据结构期中考试

数据结构期中考试
return a;
}
void main()
{ int a=10;
printf("%d,%d\n",fun(a),a);
}
执行后输出结果是:
3.void main( )
{
int a=0, b=0, d=0;
char *s="xcbc3abcd";
for(; *s!=′\0′; s++)
switch(*s)
13. 设typedef double DB;,则与DB u[5];的等价形式是( )。
A. double db[5];B.double DB[5];
C.double u;D.double u[5] ;
14.设int*p[4];,则标识符p是()。
A.整型数组名B.指针数组名
C.指针函数名D.指向整型变量的指针
2、某幼儿园入园分班规定如下:
A.继续执行本次循环B.提前退出多重循环
提前结束本次循环D.提前退出本重循环
6.数组定义及初始化正确的是()。
A.char a[5]={};B.int a[5]={0,1,2,3,4,5};
C.char a={"string"};
D.char a[]={'0','1','2','3','4','5'};
for(i=0;i<3;i++)printf(〞%5d〞,f(i));
printf(〞\n〞);
}
执行后输出结果是:
四、编程题(每题10分,共30分)。
1、从键盘输入三条边a、b和c,若能构成三角形则输出其面积,否则输出不能构成三角形的提示信息“No triangle”。
三角形面积计算公式 其中:s=(a+b+c)/2。

数据结构期中考试答案解析

数据结构期中考试答案解析

数据结构期中试卷及答案解析考试说明考试说明:考察前五章小题,难度接近真题。

满分100分,共20道选择题,每题5分。

请在60分钟内完成。

C T(n)=n3+5000nD T(n)=2nlogn-1000n参考答案:C本题考察时间复杂度,多个项相加时,只保留最高阶项由于巴啦啦能量——“常<对<幂<指<阶”,因此T(n)=logn+5000n=O(n)T(n)=n2-8000n=O(n2)T(n)=n3+5000n=O(n3)T(n)=2nlogn-1000n=O(nlogn)所以O(n3)复杂度最大,选C。

3.下列叙述中正确的是()①线性表在链式存储时,查找第 i 个元素的时间同 i 的值成正比②线性表在链式存储时,查找第 i 个元素的时间同 i 的值无关③线性表在顺序存储时,查找第 i 个元素的时间同 i 的值成正比A. 仅①B. 仅②C. 仅③D. ①②③参考答案:A线性表在链式存储时,查找第 i 个元素的时间同 i 的值成正比。

线性表在顺序存储时,查找第 i 个元素的时间同 i 的值无关4.若线性表最常用的操作是存取第i个元素及其前驱和后继元素的值,为节省时间应采用的存储方式()。

A. 单链表B. 双向链表C. 单循环链表D. 顺序表参考答案:D注意到,题目要求存取第i个元素及其前驱和后继,ABC三个选项找到第i个元素的时间复杂度均为O(n),而D选项对于这3个位置的存取的时间复杂度均为O(1),故选D。

5.静态链表中next域表示的是()A 下一个元素的地址B 下一个元素的值C 当前元素的值D 下一个元素在数组中的位置参考答案:D静态链表一般保存在数组中,它和链表最大的区别是静态链表占用一段固定的区间,所以next域只需要表示下一个元素在数组中的下标即可而不是表示下一个元素的地址,选D。

6.对于不带头结点的链栈L(next域表示该结点下一个元素),top指针指向栈顶元素(栈顶在链头方向),则x结点进栈操作为A top->next=x;top=x;B top=x;top-next=x;C top=x;x->next=top;D x->next=top;top=x;参考答案:D本题考察链栈的操作x入栈之后x下一个元素为原来的top,所以先把x->next=top,然后更新top,栈顶元素指向x。

数据结构期中考试答案

数据结构期中考试答案

9. 在 单 链 表 L 中 , 指 针 p 所 指 结 点 有 后 继 结 点 的 条 件 是 :
__(14)p->next!=NULL

10. 串是有 n(n>=0)个字符组成的有限序列;在 C 语言里用 (15)数组
存储串,并在串末尾加上 (16) ‘\0’ 作为串的结束标志。
11. 串的链式存储结构包括 (17)单字符结点链 和 (18)块 链。 12. 稀疏矩阵的压缩存储一般采用 (19)三元组 顺序表。 13. 递归算法直接或者间接调用了 (20)函数本身 。 二、 综合题(总分 60) 1.设计一数据结构,用来表示某一银行储户的基本信息: 账号、姓名、开
9. rear 是指向以循环链表表示的队列的队尾指针,EnLQueue 函数实现把 x 插入到队尾
的操作。DeLQueue 函数实现删除队头元素并赋给 x 的操作。根据题意按标号把合适的
内容填写到算法后面相应标号的位置。(队列元素的数据类型为 ElemType)【6 分】 void EnLQueue(ListNode *rear, ElemType x)
6. 在单链表中设置头结点的作用是_(9)使得删除插入等操作处理方法
相同
7. 栈是一种特殊的线性表,允许插入和删除操作的一端称为 (10)栈
顶 ,不允许插入和删除操作的一端称为 (11)栈底 。
8. 在顺序循环列队中,队空标志为____(12_cou(13)_Q->rear==Q->front&&count>0_________。
《数据结构》期中考试试卷
一、 填空题(每空 1 分,共 20 分)
1. 数据的物理结构包括 (1)顺序 的表示和 (2)链式 的表示。

数据结构(期中测试)

数据结构(期中测试)
数据结构(期中测试 数据结构 期中测试) 期中测试
填空: 一.填空 填空 1.数据逻辑结构包括① , ②和③三种类型 数据逻辑结构包括① 数据逻辑结构包括 2.在线性结构中,第一个结点①前驱结点,其余 在线性结构中,第一个结点①前驱结点, 在线性结构中 每个结点有且只有②个前驱结点; 每个结点有且只有②个前驱结点;最后一个结点 ③后续结点,其余每个结点有且只有④个后续结 后续结点,其余每个结点有且只有④ 点. 3.向量,栈和队列都是①结构,可以在向量的② 向量, 向量 栈和队列都是①结构,可以在向量的② 位置插入和删除元素;对于栈只能在③ 位置插入和删除元素;对于栈只能在③插入和删 除元素;对于队列只能在④插入元素和⑤ 除元素;对于队列只能在④插入元素和⑤删除元 素.
若按图所示铁道进行车厢调度(注意:两侧铁道均为 若按图所示铁道进行车厢调度(注意: 单向行驶道),则请回答: ),则请回答 单向行驶道),则请回答: (1)如果进站的车厢序列为 )如果进站的车厢序列为123,则可能得到的 , 出站车厢序列是什么? 出站车厢序列是什么? (2)如果进站的车厢序列为 )如果进站的车厢序列为123456,则能否得到 , 435612和135426的出站序列,并请说明为什么不 的出站序列, 和 的出站序列 能得到或者如何得到(即写出以'S'表示进栈和以 表示进栈和以'X' 能得到或者如何得到(即写出以 表示进栈和以 表示出栈的栈操作序列). 表示出栈的栈操作序列).
三.综合 综合 1.一个稀疏矩阵如图所示,则对应的三元组表示为①. 一个稀疏矩阵如图所示,则对应的三元组表示为① 一个稀疏矩阵如图所示 0 0 2 0 3 0 0 0 0 0 -1 5 0 0 0 0 2.下面程序段的时间复杂度是①. 下面程序段的时间复杂度是① 下面程序段的时间复杂度是 i=1; while(i<=n) i=i * 3;

数据结构期中试卷参考答案

数据结构期中试卷参考答案

1.评价算法优劣的基本标准有哪些?请就每一项给出简短说明。

答:(1)正确性:对输入的合法数据(包括边界情况),都能有正确的输出结果。

(2)健壮性:对输入的非法数据,算法能适当地做出反应或进行处理,而不是产生莫名其妙的输出结果。

(3)可读性:有助于人对算法的理解,易于发现错误,便于调试和修改。

(4)效率与低存储量需求:效率和存储量需求分别指算法执行所需要的时间和最大存储空间。

2.已知一棵二叉树的中序和后序序列分别为GLDHBEIACJFK和LGHDIEBJKFCA,(1)画出这棵二叉树,对这棵二叉树的构造过程给出一个简短说明;(2)将这棵二叉树理解为“孩子-兄弟法”表示的森林,画出这个森林。

答:(1)构造出的二叉树如图1所示:图1构造过程说明:①后序序列的最后一个元素为A, 得知二叉树的根为A;②在中序序列中找到树根A, A左侧的部分GLDHBEI为左子树的中序序列,A右侧的部分CJFK为右子树的中序序列。

并得知左子树7个节点,右子树4个节点;③后序序列的前7个节点LGHDIEB是左子树的后序序列,后续序列的后4个节点JKFC是右子树的后序序列;④根据中序GLDHBEI后序LGHDIEB求左子树,根据中序CJFK后序JKFC 求右子树。

依此类推,便可唯一构造出此二叉树。

(2)“孩子-兄弟表示法”,又称二叉链表表示法,链表中结点的两个链域分别指向该结点的第一个孩子和下一个兄弟结点,一棵二叉树与森林一一对应,该森林如图2所示:图23.字符A,B,C,D,E,F,G的使用频度分别是15,8,10,21,6,19,3,写出A,B,C,D,E,F,G的Huffman编码,列出编码过程,解释Huffman 有什么优点。

解:编码过程如下:各字符编码为字符 A B C D E F G编码011 110 010 00 1111 10 1110优点:Huffman编码为前缀码,它根据结点出现的频度由低到高编码,则可以使频度较高的结点有尽可能短的编码,从而使整个发送文件的总编码长度尽可能短。

数据结构期中考试

数据结构期中考试

北京经济技术职业学院2013-2014学年第一学期12级计算机应用技术专业《数据结构构》课程期中考试试卷专业:班级:姓名:学号:得分:注意事项:1.共6页,用钢笔或圆珠笔答卷。

2.闭卷.3.总分:100分,考试时间:100分钟试题的所有答案都要写在试卷后附的答题纸上,不按要求做的一律不能得分。

一、单项选择题(本大题共15小题,每小题2分,共30分)。

1. 自定义标识符由字母、数字或下划线组成,且第一个字符必须是( )。

A.数字B.字母或数字C.数字或下划线D.字母或下划线2. 关于C语言程序描述正确的是( )。

A.函数必须要有return语句B.主函数必须位于程序的开头C.程序中每行只能写一条语句D.一个程序中只能有一个主函数3. 关于for(表达式1;表达式2;表达式3),叙述正确的是( )。

A.表达式1不可以缺省B.表达式2不可以缺省C. 三个表达式都可以缺省D.表达式3不可以缺省4. 下列为C语言关键字(或称作保留字)的是( )。

A.realB.longC.pointerD.integer5. 在循环结构中,continue语句的作用是( )。

A.继续执行本次循环B.提前退出多重循环C.提前结束本次循环D.提前退出本重循环6. 数组定义及初始化正确的是( )。

A.char a[5]={};B.int a[5]={0,1,2,3,4,5};C.char a={"string"};D.char a[]={'0','1','2','3','4','5'};7. 正确表示数学关系式x≥y≥z的C语言表达式是( )。

A.x>=y>=zB.(x>=y)&&(y>=z)C.(x>=y)&(y>=z)D.(x>=y)||(y>=z)8. 设int m;,与while(!m)等价的是( )。

A.while(m!=0)B.while(m==1)C.while(m==0)D.while(m!=1)9、设char *sl="12345",*s2="1234";,执行语句printf("%d\n",strlen(strcpy(sl,s2)));后的输出结果是( )。

13级《数据结构》期中试卷(打印)

13级《数据结构》期中试卷(打印)
10.队列和栈的特征分别是()。
A.先进先出,先进后出;B.先进先出,先进先出;
C.先进后出,先Biblioteka 先出;D.先进后出,先进后出.11.有6个元素按6,5,4,3,2,1的顺序进栈,问下列哪一个不是合法的出栈序列( )。
A.5,4,3,6,1,2;B. 4,5,3,1,2,6;C.3,4,6,5,2,1;D. 2,3,4,1,5,6.
}
}
2.已知有如下定义
typedef struct LNode {
int data;
struct LNode *next;}*LinkList, LNode ;
则下列算法的功能是
ListList Demo(LinkList L)
{
ListNode *Q,*P;
if (L&&L->next)
{
Q=L;
2.数据元素及其关系在计算机存储器内的表示,称为数据的。
3.设顺序表第1个元素的存储地址是2000,每个元素占4个字节,则第41个元素的存储地址是。
4.线性表中的每个结点最多有________前驱和____________后继。
5.在有n个结点的单链表中,要删除指针p所指结点,需要找到它的。
6.栈是限制仅在表一端进行插入和删除运算的线性表,通常将这一端称为。
Push(S,y); x=Pop(S);
Push(S,’E’); Push(S,x);
x=Pop(S); Push(S,’H’);
while(!StackEmpty(S)){
y=Pop(S); putchar(y);
}
putchar(x);
得分
五、算法设计题(共25分)
1.用顺序表实现:有10本图书,每本图书的数据有:书号,价格;设计算法input( )从键盘上输入10本图书的数据;设计算法average( )计算10本书的平均价格并输出。(14分)

数据结构期中试题

数据结构期中试题

河北北方学院2012-2013学年第一学期期中考试试卷 《数据结构》 (供11级计算机科学与技术使用) 注意事项: 1.请按要求在试卷的密封区填写专业、班级、姓名和学号。

2.请仔细阅读各种题目的答题要求,在规定的位置填写答案。

3.不要在试卷上乱写乱画,不要在密封区填写无关的内容。

总分合计人: 复核人: 一、单选题 (每题2分,共30分) 1、下列算法是时间复杂度是___。

for(i=0;i<n;i++) for(j=0;j<n;j++) c[i][j]=i+j; A ) O (1) B)O (n ) C) O (log 2n )D ) D)O (n2) 2、算法指的是___。

A)计算机程序 B)解决问题的答案 C)排序算法 D)解决问题的有限运算序列 3、下面关于线性表的叙述中,错误的是___。

A)线性表采用顺序存储,必须占用一片连续的存储单元。

B)线性表采用顺序存储,便于进行插入和删除操作。

C)线性表采用链接存储,不必占用一片连续的存储单元。

D)线性表采用链接存储,便于插入和删除操作。

4、链接存储的存储结构所占存储空间:___。

A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 B)只有一部分,存放结点值专业________ 班级________ 姓名__________学号________ ………………………………………密…………………………………封………………………………………线……………………………………………C)只有一部分,存储表示结点间关系的指针D)分两部分,一部分存放结点值,另一部分存放结点所占单元数5、在n 个结点的顺序表中,算法的时间复杂度是O (1)的操作是___。

A)访问第i 个结点(1≤i ≤n )和求第i 个结点的直接前驱(2≤i ≤n )B)在第i 个结点后插入一个新结点(1≤i ≤n )C)删除第i 个结点(1≤i ≤n ) D)将n 个结点从小到大排序6、线性表若采用链式存储结构时,要求内存中可用存储单元的地址 ___。

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

计算机学院2012级《数据结构》期中考试试卷 第 1 页 (共 3 页)玉林师范学院期中课程考试试卷(2013——2014学年度第一学期)命题教师:王贞东 命题教师所在院:计算机学院 试卷类型:(考试) 课程名称:数据结构 考试专业:计算机、软件工程 考试年级:2012级1、结构中的数据元素之间存在一个对多个的关系,称为( D )结构。

A 、线性B 、树形C 、图状D 、网状2、设顺序表中有n 个数据元素,则删除表中第i 个元素(1≤i≤n)需要移动( A )个元素。

A 、n-i B 、n-i+1 C 、n-i-1 D 、i 3、对单链表执行下列程序段,请选出正确的一项( A )。

T=P;While(T->link!=NULL){T->data=T->data*2;T=T->link;} A 、R->data=4 B 、R->data=8 C 、H->data=4 D 、S->data=8 4、“假上溢”现象会出现在( B )中。

A 、循环队列B 、顺序队列C 、链队列D 、队列5、若让元素1,2,3依次进栈,则出栈次序不可能出现( C )种情况。

A 、3,2,1 B 、2,1,3 C 、3,1,2 D 、1,3,26、设字符S1=…ABCDEFG‟,S2=…PQRST‟,则运算S =CONCA T (SUB (S1,2,LENGTH (S2)),SUB (S1,LENGTH (S2),2))后结果为( D )。

A 、…BCQR‟ B 、…BCDEF‟ C 、…BCDEFG‟ D 、…BCDEFEF‟7、下列说法哪个是不正确的:( A )。

A 、广义表(((a)))的表头是(a)。

B 、广义表((a),((b),c),(((d))))长度为3。

C 、广义表((a),((b),c),(((d))))深度为4。

D 、广义表((a),((b),c),(((d))))的表尾是(((b),c),(((d))))。

8、一个队列的出队序列是1 2 3 4,则队列的入队序列是( B )。

A 、4 3 2 1 B 、1 2 3 4C 、1 4 3 2D 、3 2 4 19、队列与一般的线性表的区别在于( C )。

A 、数据元素的类型不同B 、 数据元素的个数不同C 、运算是否受限制D 、逻辑结构不同10、两个字符串相等的充要条件是( C )。

A 、两个字符串的长度相等B 、两个字符串中对应位置上的字符相等C 、同时具备(A)和(B)两个条件D 、以上答案都不对 11、对稀疏矩阵进行压缩存储是为了( C )。

A 、便于进行矩阵运算B 、便于输入和输出C 、节约存储空间D 、降低运算的时间复杂12、设计一个判别表达式中左、右括号是否配对出现的算法,采用( B )数据结构最佳。

A 、线性表的顺序存储结构B 、栈C 、队列D 、线性表的链式存储结构13、在顺序表中,只要知道( D ),就可在相同时间内求出任一结点的存储地址。

A 、基地址B 、结点大小学院: 年级: 专业: 班别: 学号: 姓名: 座位号: —————————————————————————————————————————————————————— 密 封 线 内 不 要 答 题∞ 装 订∞ 线 ∞C、向量大小D、基地址和结点大小14、线性表若采用链式存储结构,要求内存中可用存储单元的地址( C )A、必须是连续的B、部分地址必须是连续的C、可以是任意的D、一定是不连续的15、设指针变量p指向单链表中结点A,若删除单链表中结点A后继结点,则需要修改指针的操作序列为( B )A、q=p->next;q->next=q->next;free(q);B、q=p->next;p->next=q->next;free(q);C、q=p->next;p->data=q->data;free(q);D、q=p->next;p->data=q->data;free(q);二、填空题(每题2分,共10分)1、数据的逻辑结构是从逻辑关系上描述数据,它与数据的__储存(物理)___结构无关,是独立于计算机的。

2、串是一种特殊的线性表,其特殊性体现在___数据元素是一个字符__________。

3、二维数组A[5][6]以行为主序进行存储,下标从1开始,且每个元素占1个存储单元。

若A[1][1]的存储地址为420,A[3][3]的存储地址为_____434________。

4、已知广义表的表头为A,表尾为(B,C),则此广义表为__(ABC)___。

5、对顺序栈的插入与删除操作都在___栈顶____进行。

三、判断题(每题1分,共10分),对的打√,错的打×。

1、线性结构的基本特征是:所有结点有且仅有一个直接前驱和一个直接后继。

(×)2、顺序存储的线性表可以实现随机存取。

(×)3、线性表的顺序存储结构比链式存储结构更好。

(√)4、在线性结构的顺序存储结构中,逻辑上相邻的两个元素在物理位置上不一定相邻。

(×)5、对链表进行插入和删除操作时需要大量移动链表中的结点。

(×)6、不论线性表采用顺序存储结构还是链式存储结构,删除值为X的结点的时间复杂度均为O(n)。

(√)7、顺序栈中元素值的大小必须是有序的。

(×)8、不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑“溢出”情况。

(√)9、数组是一种复杂的数据结构,数组元素之间的关系不是线性的(×)。

10、由空格组成的串叫空串。

(×)四、解答题(每题8分,共40分)1、已知L是非空单链表,且P结点既不是第一个元素结点,也不是最后一个元素结点,请写出在P结点之后插入S结点(假设S结点已经生成,指针域用“link”表示)的语句序列:答:s->link=p->next; p->link=s;2、LinkList mynote(LinkList L){//L是不带头结点的单链表的头指针if (L && L->next){q=L; L=L->next; p=L;S1: while (p->next) p=p->next;S2: p->next=q; q->next=NULL;}return L;计算机学院2012级《数据结构》期中考试试卷第2 页(共 3 页)}请回答下列问题:1)说明语句S1的功能;查询链表的尾结点2)说明语句S2的功能;将第一个结点链接到链表的尾部,作为新的尾结点3、设指针p指向单链表中结点A,指针S指向被插入的结点X,则在结点A的后面插入结点X,并且交换A结点和X结点的数据的操作代码如下。

请完成下面的填空。

1)s->next=____p->next_____;2)p->next=s;3)t=p->data;4)p->data=___s->data_______;5)s->data=t;4、下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句。

#define MAXSIZE 100typedef int ELEMTYPE;typedef struct {ELEMTYPE data[MAXSIZE]; int top;} SqStack;void Push(SqStack *stack,int x){if (stack->top==MAXSIZE)printf(“overflow”);else{ ___stack->data[stack->top]=x_____;___stack->top++______________;}}5、在实际组织单链表时,通常会引入一个称为头结点(header node)的特殊结点作为表头。

请讨论采用头结点的好处。

答:带头结点的好处,可以方便一些边界处理,例如(答的点有 4 个以上就可以):(1)单链表为空时的插入;(2)单链表被删除为空表时的处理;(3)插入作为表的第一个结点;(4)删除表的第一个结点;五、算法设计题:假设单链表的n个元素保存在数组a[n]中,试设计一个函数读取a[n]中的数据进行单链表的动态逆向生成,并返回指向链表头结点的指针。

(10分)JD* dlbjl(int a[],int n){JD *s,*h;int i;h=(JD*)malloc(sizeof(JD));h->data=0;h->link=NULL;for(i=n;i>0;i--){s=(JD*)malloc(sizeof(JD));s->data=a[i-1];s->link=h->link;h->link=s;}return (h);}计算机学院2012级《数据结构》期中考试试卷第3 页(共 3 页)。

相关文档
最新文档