级计本数据结构期中考试卷(含答案)
数据结构期中试题及参考答案

}LNode, *LinkList;
阅读算法 f31,并回答问题;
(1)设节点结构为id score next
,成绩链表 A 和 B 如图所示,画
出执行算法 f31(A,B)后节点 A 所指的链表;
A
1 70
2 40
3 90
4 48
5 56
B
2 38
4 65
题 31 图
(2)减速算法 f31 的功能。 Void f31(LinkList A, LinkList B) { LinkList p,q; p = A->next; q = B->next; while (p && q) { if(p->id < q->id) p = p ->next; else if(p->if > q-> id) q =q –>next; else { if (p->score < 60)
I + = j + lt ;
}
}while (i+lt <= ls && j>=0);
Return k;
}
4
五、算法设计题(本题 14 分) 34.假设线性表采用顺序存储结构,其类型定义如下:
#define ListSize 100 typedef struct{
int data[ListSize]; int length; }SeqList, *Table; 编写算法,将顺序表 L 中所有值为奇数的元素调整到表的前端。
(1)设 n=10,元素
p=8
2
存储在 sa[p],写出下标 p 的值;
题 3-1 图
数据结构期中考试题

数据结构期中考试题一、选择题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.若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为( D ) 。
A.顺序表 B.链表 C.索引表 D.散列表采用排除法,顺序表存储位置表示数据元素的顺序关系,跟关键字无法;链表的地址是动态分配的;索引表是 按数据元素的关键字排序所得,它的数据元素是没有规律的2.在长度为 n 的顺序表的第 i(1≤i ≤n+1)个位置上插入一个元素,元素的移动次数为( A ) 。
A.n -i+1B.n -iC.iD.i -1代入计算法,我们知道在 i=n+1 时不需要移动元素3.若一棵二叉树的先序遍历序列为 a,b,c ,则由 abc 三个结点构成的二叉树个数为( B ) 。
A.4B.5C.6D.74.三维数组 A[4][5][6]按行优先存储方法存储在内存中,若每个元素占 2 个存储单元,且数组中第一个元素的存 储地址为 130,则元素 A[3][4][5]的存储地址为(B A.370B .368C .366) 。
D.372Loc(3,4,5)=loc(0,0,0)+(3*5*6+4*6+5)*2=130+119*2=368;5.高度为 h 的二叉树(仅含根结点的二叉树高度为 1)的结点最少是多少( D) 。
A. h+1B. 2hC. 2h -1D. h二叉树性质 26. 将两个各有 n 个元素的有序表归并成一个有序表,其最多的比较次数是( A. nB.n+1 C. 2n-1D. n-17. 已知一算术表达式的中缀形式为 A +B *C -D/E ,后缀形式为 ABC *+DE/-,其前缀形式为( C) 。
A )。
A. -+A*BC/DE C. -+*ABC/DEB. –A+B*CD/E D. –A+B*C/DE根据中缀和后缀表达式可画出表达树如下:- + /A* D EBC故前缀表达式为:-+A*BC/DE数据结构期中考试8.下面图示的顺序存储结构表示的二叉树是( A )。
2020-学年第2学期数据结构期中考试

2019 -2020 学年第2学期期中考试《数据结构与算法》试卷一、填空题(共42分,前39空*1分,最后一空3分)1.从命令行编译程序:打开一个命令提示符窗口,设置好环境变量,进入C#源程序所在的文件夹,然后输入编译C#源程序test.cs的完整命令是。
如果程序没有包含任何编译错误,生成的结果文件名是。
2. C#的数据类型分为类型和类型,前者的变量本身包含他们的数据,包括,,等,而引用类型的变量包含的是,其包括,等。
int类型变量的位长是,char类型的位长是。
3.数据结构可以看成是关于数据集合的数据类型,它关注三个方面的内容:数据元素的特性、数据元素之间的关系以及由这些数据元素组成的数据集合所允许进行的操作。
数据结构课程主要讨论数据的、数据的和数据的这三个方面的内容。
4.在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。
5.一个算法的效率包含两方面的内容:效率和效率。
6.线性表、栈和队列都是结构。
可以在线性表的______位置插入和删除元素;栈只能在_______插入和删除元素,其中插入操作称作, 删除操作称作;队列只能在插入和删除元素,其中插入操作称作, 删除操作称作。
因此,栈具有特性,队列具有特性。
函数调用时,处理参数和返回地址,通常要使用的数据结构是。
7. 设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序列为b,d,c,f,e,a,则栈S的容量至少应该是。
二、综合题(58分)1.(6分)分析下列两段程序的时间复杂度。
(1)下面程序段的时间复杂度是for(i=0; i<n; i++)for(j=0; j<i; j++)Console.Write(i*j);(2)下面程序段的时间复杂度是for(int i=1; i<=n; i*=2)for(int j=1; j<=i; j++)Console.Write(i*j);2.(4分)分析并说明下列代码的作用是什么:Queue<int> q = new Queue<int>();for (int i = 0; i < 10; i++) {q.Enqueue(i * 2);}foreach (var item in q) {Console.Write("{0} ",item);}Console.WriteLine();Stack<int> s = new Stack<int>();int c = q.Count;for (int i = 0; i < c; i++) {s.Push(q.Dequeue());}foreach (var item in s) {Console.Write("{0} ", item);}Console.WriteLine();3. (12分)已知顺序表的基本定义如下:public class SequencedList<T> {private T[] items;private int count = 0;private int capacity = 0;}请重写其ToString方法:public override string ToString()。
数据结构与算法期中考试卷(含答案)

数据结构与算法期中考试卷(含答案)⽟林师范学院期中课程考试试卷(2010——2011学年度第⼀学期)命题教师:刘恒命题教师所在系:数计系课程名称:数据结构与算法考试专业:信计考试年级:09级⼀、单项选择题(每题2分,共30分,把正确答案填⼊表格中) 1、在数据结构中,从逻辑上可以把数据结构分成( C )。
A 、动态结构和静态结构B 、紧凑结构和⾮紧凑结构C 、线性结构和⾮线性结构D 、逻辑结构和存储结构 2、结构中的数据元素之间存在⼀个对多个的关系,称为(B )结构。
A 、线性 B 、树形 C 、图状 D 、⽹状 3、以下关于线性表的说法不正确的是(C )。
A 、线性表中的数据元素可以是数字、字符、记录等不同类型。
B 、线性表中包含的数据元素个数不是任意的。
C 、线性表中的每个结点都有且只有⼀个直接前驱和直接后继。
D 、存在这样的线性表:表中各结点都没有直接前驱和直接后继。
4、关于单链表的说法,请选出不正确的⼀项( C)。
A 、逻辑相邻、物理不⼀定相邻B 、不能随机存取C 、插⼊与删除需移动⼤量元素D 、表容量易于扩充 5、关于顺序表的说法,请选出不正确的⼀项(D )。
A 、逻辑相邻、物理相邻 B 、可实现随机存取 C 、存储空间使⽤紧凑 D 、表容量易于扩充6、设N 为正整数,试确定下列程序段中前置以记号@语句的频度为(A )。
x=91;y=100;while(y>0){@if(x>100){x-=10;y--;} else x++; } A 、1100 B 、 9100 C 、110 D 、 9107、在顺序表中删除⼀个元素,平均需要移动( C)元素,设表长为n 。
A、n/2-1 B 、n/2+1C 、n/2D 、(n+1)/28、对单链表执⾏下列程序段,请选出正确的⼀项( A)。
T=P;While(T->next!=NULL ){T —>data=T —>data*2;T=T —>next;} A 、R->data=4 B 、R->data=8C 、H->data=4D 、Q->data=79、若⼀个栈的输⼊序列是1,2,3,┅,n ,输出序列的第⼀个元素是n,则第k 个输出元素是( C)。
数据结构期中测试题答案

《数据结构》期中测试班级:姓名:学号:一、填空题: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所指结点是某双向链表的中间结点,试从下列提供的答案中选择合适的语句序列。
《数据结构》期中试题(有答案)

福建师范大学数学与计算机科学学院
2009--2010学年度上学期08电信
《数据结构》期中试题
试卷类别:闭卷考试时间:90分钟
倚窗远眺,目光目光尽处必有一座山,那影影绰绰的黛绿色的影,是春天的颜色。
周遭流岚升腾,没露出那真实的面孔。
面对那流转的薄雾,我会幻想,那里有一个世外桃源。
在天阶夜色凉如水的夏夜,我会静静地,静静地,等待一场流星雨的来临…
许下一个愿望,不乞求去实现,至少,曾经,有那么一刻,我那还未枯萎的,青春的,诗意的心,在我最美的年华里,同星空做了一次灵魂的交流…
秋日里,阳光并不刺眼,天空是一碧如洗的蓝,点缀着飘逸的流云。
偶尔,一片飞舞的落叶,会飘到我的窗前。
斑驳的印迹里,携刻着深秋的颜色。
在一个落雪的晨,这纷纷扬扬的雪,飘落着一如千年前的洁白。
窗外,是未被污染的银白色世界。
我会去迎接,这人间的圣洁。
在这流转的岁月里,有着流转的四季,还有一颗流转的心,亘古不变的心。
数据结构期中考试试题及答案

2014-2015学年第二学期《数据结构与算法》期中考试学号:姓名:一、写语句1.设单链表结点指针域为next,试写出删除链表中指针p所指结点的直接后继的C语言语句。
2.设单链表中某指针p所指结点(即p结点)的数据域为data,链指针域为next,请写出在p结点之前插入s结点的操作3. 设双向循环链表中结点的数据域、前驱和后继指针域分别为data,pre和next,试写出在指针p 所指结点之前插入s结点的C语言描述语句。
4. 一线性表存储在带头结点的双向循环链表中,L为头指针。
如下算法:(1)说明该算法的功能。
(2)在空缺处填写相应的语句。
void unknown (BNODETP *L){ …p=L->next; q=p->next; r=q->next;while (q!=L){ while (p!=L) && (p->data>q->data) p=p->prior;q->prior->next=r;(1) ______;q->next=p->next;q->prior=p;(2) ______;(3) ______;q=r;p=q->prior;(4) ______;} }二、写算法1.设有一个正整数序列组成的有序单链表(按递增次序有序,且允许有相等的整数存在),试编写能实现下列功能的算法:(要求用最少的时间和最小的空间)(1)确定在序列中比正整数x大的数有几个(相同的数只计算一次,如序列{20,20,17,16,15,15,11,10,8,7,7,5,4}中比10大的数有5个);(2) 在单链表将比正整数x小的数按递减次序排列;(3) 将正整数(比)x大的偶数从单链表中删除。
2. 设键盘输入n个英语单词,输入格式为n, w1, w2, …,wn,其中n表示随后输入英语单词个数,试编一程序,建立一个单向链表,实现:(1)如果单词重复出现,则只在链表上保留一个。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 / 5玉林师范学院期中课程考试试卷(2010——2011学年度第一学期)命题教师:刘恒 命题教师所在系:数计系课程名称:数据结构考试专业:计算机考试年级:09级一、单项选择题(每题2分,共30分,把正确答案填入表格中) 1、下列哪项不是衡量算法优劣的规范( )。
A 、健壮性B 、可行性C 、可读性D 、效率与低存储量2、设n 为正整数,则下列程序段中前置以记号@的语句频度为( )。
k=0。
for(i=1。
i<=n 。
i++) { for(j=i 。
j<=n 。
j++) @ k++。
}A 、2nB 、n-1C 、n(n+1)/2D 、n3、关于线性表()n a a a ,...,,21的说法,下列哪个是不正确的( )。
A 、数据元素同构。
B 、数据元素个数n 为表长度。
C 、当n=0时,线性表为空表。
D 、数据项能出现缺项。
4、在顺序表中,只要知道( ),就可在相同时间内求出任一结点的存储地址。
A 、基地址和结点大小B 、结点大小C 、基地址D 、向量大小5、在( )运算中,使用顺序表比链表好。
A 、插入B 、删除C 、根据序号查找D 、根据元素值查找6、设N 为正整数,试确定下列程序段中前置以记号@语句的频度为( )。
x=91。
y=100。
while(y>0){@if(x>100){x-=10。
y-=2。
} else x++。
} A 、1100B 、550 C 、110D 、 557、“假上溢”现象会出现在( )中。
A 、循环队列B 、链队列C 、栈D 、顺序队列8、对单链表执行下列程序段,请选出不正确的一项( )。
T=Q 。
While(T->next!=NULL){T->data=T->data*3。
T=T->next 。
} A 、R->data=27B 、Q->data=12C 、H->data=2D 、P->data=39、一个栈的入栈序列是abcde ,则栈的不可能的输出序列是( )。
系(院): 年级: 专业: 班别: 学号: 姓名: 座位号: —————————————————————————————————————————————————————— 密 封 线 内 不 要 答 题∞ 装 订∞ 线 ∞A、edcbaB、decbaC、dceabD、abcde10、在一个链队中,假设F和R分别是队首和队尾指针,则删除一个结点的运算是( )。
A、R=F->next。
B、F=F->next。
C、R=R->next。
D、F=R->next。
11、串是一种特殊的线性表,其特殊性体现在( )。
A、数据元素是一个字符B、可以顺序存储C、可以链接存储D、数据元素可以是多个字符12、设计一个判别表达式中左、右括号是否配对出现的算法,采用( )数据结构最佳。
A、线性表的顺序存储结构B、队列C、线性表的链式存储结构D、栈13、设数组B[1..3,1..5]中的任一元素均占4个单元,从首地址SA=2010开始把数组B按列优先存储,则元素B[2,4]的地址为( )。
A、2042B、2074C、2050D、210814、对稀疏矩阵进行压缩存储是为了( )。
A、便于进行矩阵运算B、节约存储空间C、便于输入和输出D、降低运算的时间复杂度15、下列说法哪个是不正确的:( )。
A、广义表(((a)))的表头是(a)。
B、广义表((a),((b),c),(((d))))长度为3。
C、广义表((a),((b),c),(((d))))深度为4。
D、广义表((a),((b),c),(((d))))的表尾是(((b),c),(((d))))。
二、填空题(每题1分,共10分)1、数据结构是一门研究____________的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
(非数值计算)2、空间复杂度作为算法所需存储空间的量度,记作____________。
(S(n)=O(f(n)))3、一个顺序表的开始地址是1000,每个元素的长度是8,则第7个元素的存储地址是____________。
(1048)4、在无头结点的单链表中,第1个结点的地址存放在头指针中,其他结点的存储地址存放在____________结点的next域中。
(前驱)5、当程序中同时使用_______ _____个栈时,让它们共享同一向量空间可减少上溢的发生。
(2)6、假设以数组Sq[M]存放循环队列,同时设变量rear和quelen分别指示循环队列中队尾元素的位置和内含的元素个数,则判别队满的条件是____。
(quelen= =M)7、假设每个字符占1个字节,若结点大小为4的链串的存储密度为50%,则其每个指针占____________个字节。
(4)8、在多维数组中,数据元素的存放地址直接可通过地址计算公式计算出。
因此,数组是一种____________存取结构。
(随机)9、矩阵的压缩存储就是为多个相同的非零元素分配_____ ____个存储空间,不为零元素分配空间。
(1)10、广义表是线性表的推广,它们之间的区别在于_____ ____。
(能否使用子表)三、名词解释(每题2分,共10分)1、算法的可行性一个算法是能行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。
(2分)2、数据项有独立含义的数据最小单位,也称域。
(2分)3、顺序表用一组地址连续的存储单元存放一个线性表称为顺序表。
(2分)4、队列队列是限定只能在表的一端进行插入,在表的另一端进行删除的线性表。
(2分)5、空串零个字符的串称为空串。
(2分)2 / 5四、解答题(每题5分,共40分)1、在选择算法时,除首先考虑正确性外,还应考虑哪三点?选用的算法首先应该是"正确"的。
此外,主要考虑如下三点:①执行算法所耗费的时间;(2分)②执行算法所耗费的存储空间,其中主要考虑辅助存储空间;(1分)③算法应易于理解,易于编码,易于调试等等。
(2分)注:酌情给分。
2、请写出在结点a、b之间插入结点x的关键语句,设指针变量P指向结点b,指针变量S指向结点x。
void ins_dulist(JD*p,int x){JD *s。
s=(JD*)malloc(sizeof(JD))。
s->element=x。
(以上1分)s->prior=p->prior。
(1分)p->prior->next=s。
(1分)s->next=p。
(1分)p->prior=s。
(1分)}注:没有函数定义,只写出语句也可;大小写均可。
3、把下列中缀表达式分别表示成后缀表达式。
(1) a+(b*c+d)/e(2) a*b/c+d-e(3) a-b*c+d/e(1)abc*d+e/+ (1分)(2) ab*c/d+e-(2分)(3)abc*-de/+ (2分)4、如何解决顺序队列的假上溢问题?(1)基本思想:把队列设想成环形,让sq[0]接在sq[M-1]之后,若rear+1==M,则令rear=0。
(2分)(2)实现:[入队]sq[rear]=x。
rear=(rear+1)%M。
[出队]x=sq[front%M]。
front=(front+1)%M。
(3分)注:只答出用循环队列解决的给1分。
5、下列算法为简单的串模式匹配算法,请填空完成。
int Index(SString S, SString T, int pos){i=pos。
j=1。
while(i<=S[0]&&j<=T[0]){if(_____ ____) {++i。
++j。
}else{_____ ____。
j=1。
}}if(j>T[0]) return i-T[0]。
else return 0。
}S[i]= =T[j] (2分)i=i-j+2 (3分)6、二维数组M的成员是6个字符(每个字符占一个存储单元)组成的串,行下标i的范围从0到8,列下标的范围从1到10,则存放M至少需要多少个字节?若M按行优先方式存储,元素M[8][5]的起始地址与当M按列优先的方式存储时的什么元素的起始地址一致?540个字节。
(2分)M[3][10] (3分)7、请画出下列稀疏矩阵的十字链表。
3 / 54 / 5⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-2000001000503001 (答案略) 8、设head[p]为求广义表p 的表头函数,tail[p]为求广义表p 的表尾函数,其中[]是函数符号,给出下列广义表的运算结果。
(1) head[tail[(a,b,c)]](2) tail[head[((a,b),(c,d))]] (3) head[head[((a,b),(c,d))]](1) b (1分) (2) (b) (2分) (3) a (2分)五、算法设计题:设顺序表Va 中的数据元素非递减有序。
写一算法将x 插入到顺序表的适当位置上,以保持该表的有序性。
(10分)status insertorderlist(sqlist &a,elemtype x) (1分) {if(a.length==a.listsize) return(overflow)。
(1分) else{i=a.length-1。
(1分) while(i>=0&&x<a.elem[i])i--。
(1分) for(j=a.length-1。
j>=i+1。
j--) (1分) a.elem[j+1]=a.elem[j]。
(2分) a.elem[i+1]=x 。
(2分) a.length++。
(1分) return OK 。
} }5 / 5。