数据结构期中试卷

合集下载

数据结构期中考试试卷

数据结构期中考试试卷

数据结构期中考试试卷一、选择题(每题2分,共20分)1. 在数据结构中,线性结构的特点是什么?A. 元素之间存在一对一关系B. 元素之间存在一对多关系C. 元素之间存在多对多关系D. 元素之间存在一对一或多对多关系2. 以下哪个算法不是排序算法?A. 快速排序B. 归并排序C. 深度优先搜索D. 堆排序3. 在二叉树中,度为2的节点最多有多少个子节点?A. 1B. 2C. 3D. 44. 哈希表解决冲突的方法不包括以下哪一项?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. 避免使用循环结构二、填空题(每题2分,共20分)1. 在数据结构中,______是一种特殊的线性表,只允许在一端进行插入和删除操作。

2. 排序算法中,______排序的时间复杂度为O(n^2),适用于小规模数据的排序。

3. 在图的表示中,______矩阵可以有效地表示稠密图。

4. 哈希表中,______是指两个关键字通过哈希函数得到同一个哈希地址。

5. 栈和队列的主要区别在于,栈是______,而队列是先进先出。

6. 二叉树的遍历方式包括前序遍历、中序遍历和______遍历。

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

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

第页/共 页 《数据结构》期中考试试卷一、选择题(每题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,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( )。

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

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

一、单项选择题(本题总分 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 )。

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

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

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)如果单词重复出现,则只在链表上保留一个。

数据结构期中考试试卷

数据结构期中考试试卷

数据结构期中考试试卷一、选择题(每题2分,共20分)1. 在数据结构中,线性表是按照什么顺序排列的元素集合?A. 任意顺序B. 无序C. 有序D. 线性2. 链表与数组相比,其主要优点是什么?A. 节省空间B. 访问速度快C. 插入和删除操作灵活D. 内存分配简单3. 栈(Stack)是一种遵循什么原则的数据结构?A. 先进先出B. 先进后出C. 后进先出D. 后进后出4. 哈希表解决冲突最常用的方法是?A. 链接法B. 替换法C. 线性探测法D. 二次探测法5. 树和二叉树的主要区别是什么?A. 树的节点数可以比二叉树多B. 树的节点可以有多个子节点C. 树的节点可以没有子节点D. 树的节点可以有左子节点和右子节点6. 什么是二叉搜索树(BST)?A. 所有左子节点的值小于根节点的值B. 所有右子节点的值大于根节点的值C. 所有左子节点的值大于根节点的值D. A和B都正确7. 图的邻接矩阵表示法适用于哪种类型的图?A. 稠密图B. 稀疏图C. 有向图D. 无向图8. 排序算法的时间复杂度为O(n^2)的算法有哪些?A. 选择排序B. 冒泡排序C. 插入排序D. 所有以上9. 什么是递归?A. 函数调用自身B. 函数调用其他函数C. 循环结构D. 条件语句10. 动态规划主要用于解决什么问题?A. 排序问题B. 查找问题C. 优化问题D. 数据存储问题二、简答题(每题5分,共20分)1. 请简述链表和数组的区别。

2. 解释什么是图的深度优先搜索(DFS)。

3. 什么是二叉堆?请简述其性质。

4. 描述快速排序算法的基本思想。

三、编程题(每题15分,共30分)1. 编写一个函数,实现单链表的反转。

2. 编写一个函数,实现二叉树的前序遍历。

四、算法设计题(每题15分,共30分)1. 设计一个算法,用于在无序数组中找到第k小的元素。

2. 设计一个算法,实现最小生成树的克鲁斯卡尔算法。

五、综合应用题(10分)假设你正在开发一个在线图书管理系统,请设计一个数据结构来存储书籍信息,并实现以下功能:- 添加新书- 删除书籍- 查找特定书籍- 列出所有书籍请提供数据结构的设计思路和相应的伪代码。

数据结构期中考试试题答案c语言版本

数据结构期中考试试题答案c语言版本
S 1 0 3 2 1
R @ - * ( +
S 1 0 3 2 1 +
R@ - *
S 1 0 3 2 1 + * - 3 1
R@ + ( -
S 1 0 3 2 1 + * - 3 1 - 2
R@ + /
S 1 0 3 2 1 + * - 3 1 - 2 / +
R
S 1 0 3 2 1 + * - 3 1 - 2 / + @ \0
3.在带附加表头的循环双向链表中, 表头附加结点 的 左 指针域指向最后一个结点,最后一个结点的 右 指针域指向 表头附加 结点。
4.在以HL为表头指针的带附加结点的单链表和循环单链表中,链表为空的条件分别为
HL->next==NULL 和 HL==HL->next 。
5.在由数组a中元素结点构成的单链表中,删除下标为i的结点后,需要把该结点插入到空闲表的表头,具体操作为 a[i].next=a[1].next 、 a[1].next=i 。
8.一个广义表中的元素分为 单 元素和 表 元素两类。
9.广义表A=((a,(b,(),c),((d),e)))的长度为 1 ,深度为 4 。
10.向一个顺序栈插入一个元素时,首先应 top++ ,然后再将待插入元素 放入栈顶位置 。
11.对于队列,应在 队尾 进行插入,在 队首 进行删除。
12.中缀表达式2+7/(4-1)所对应的后缀表达式为 2 7 4 1 - / + @ 。
数据结构期中考试试题答案
一、 单选题(每小题2分,共8分)
1.在一个长度为n的线性表中顺序查找值为x的元素时,查找成功时的平均查找长度(即x同元素的平均比较次数,假定查找每个元素的概率都相等)为 C 。

数据结构期中试卷

数据结构期中试卷

《数据结构》期中试卷专业________ 学号_________ 姓名________ 成绩_______一、选择题(本大题共50小题,每小题2分,共100分)1. 若广义表K满足head(K)=tail(K),则K为 ( )A.( )B.( ( ) )C. ( () ),( () )D.( (),(),() )2.若要求尽可能快地对实数数组进行稳定的排序,则应选( )A.快速排序B.堆排序C.归并排序D.基数排序3. 请指出在顺序表{2、5、7、10、14、15、18、23、35、41、52}中,用二分法查找关键码12需做()次关键码比较。

A.2B.3C.4D.54.对包含N个元素的散列表进行查找,平均查找长度( )A.为 O(log2N)B.为O(N)C.不直接依赖于ND.上述三者都不是5.一个栈的输入序列为1,2,3,4,下面哪一个序列不可能是这个栈的输出序列()A. 1,3,2,4B. 2,3,4,1C. 4,3,1,2D. 3,4,2,16.下面关于图的存储的叙述中,哪一个是正确的。

()A.用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关B.用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关C.用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关D.用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关7. 首先访问结点的左子树,然后访问该结点,最后访问结点的右子树,这种遍历称为( )A.前序遍历B.后序遍历C.中序遍历D.层次遍历8.对一棵查找树根结点而言,左子树中所有结点与右子树中所有结点的关键字大小关系是( )A.小于B.大于C.等于D.不小于9.下面关于B-树和B+树的叙述中,不正确的是 ( )A. B-树和B+树都是平衡的多分树B. B-树和B+树都是可用于文件的索引结构C. B-树和B+树都能有效地支持顺序检索D. B-树和B+树都能有效地支持随机检索10. 给定下列有向图和初始结点V1,按深度优先遍历的结点序列为( )A.V1,V2,V4,V5,V3B.V1,V3,V4,V5,V2C.V1,V2,V5,V3,V4D.V1,V2,V3,V4,V511. 在数据结构中,从逻辑上可以把数据结构分成()。

数据结构期中试卷及答案

数据结构期中试卷及答案

一、选择题(每小题2分,共30分)1. 数据结构是( D )。

A.一种数据类型 B.数据的存储结构C.一组性质相同的数据元素的集合D.相互之间存在一种或多种特定关系的数据元素的集合2.以下与数据的存储结构无关的术语是( D )。

A.链队列 B. 链表 C. 顺序表 D. 栈3.以下数据结构中,( A )是非线性数据结构A.树 B.字符串 C.队 D.栈4.一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是(B)。

A.98 B.100 C.102 D.1065.在线性表的下列运算中,不改变数据元素之间结构关系的运算是(D )。

A.插入 B.删除 C.排序 D.查找6.线性表采用链式存储时,其地址(D )。

A.必须是连续的 B.一定是不连续的C.部分地址必须连续 D.连续与否均可以7.线性表是(A )。

A.一个有限序列,可以为空 B.一个有限序列,不可以为空C.一个无限序列,可以为空 D.一个无限序列,不可以为空8.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( B )。

A.3,2,6,1,4,5 B.3,4,2,1,6,5C.1,2,5,3,4,6 D.5,6,4,2,3,19. 若一个栈的输人序列是1,2,3,…,n,输出序列的第一个元素是n,则第k个输出元素是(C )。

A.k B.n-k-1 C.n-k+1 D.不确定10.对于队列操作数据的原则是( A )。

A. 先进先出B. 后进先出C. 先进后出D. 不分顺序11. 栈和队列的共同点是( C )。

A. 都是先进先出B. 都是先进后出C. 只允许在端点处插入和删除元素D. 没有共同点12.在一个链队列中,假定front和rear分别为头指针和尾指针,删除一个结点的操作是( A )。

A.front=front->next B.rear=rear->nextC.rear->next=front D.front->next=rear13. 空串与空格串( B )。

数据结构期中试卷

数据结构期中试卷

数据结构期中试卷(考试时间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.队列是插入、删除限制在表的两端的线性表。

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

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

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

满分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。

数据结构_期中试卷(含答案)

数据结构_期中试卷(含答案)

一、选择题(每小题 1分,共10分)1、队列是插入和删除受限的线性表,其删除操作是在线性表的(1)进行。

A.表头 B.表尾 C.任意位置 D.指定位置2、下述哪一条是顺序存储结构的优点(2)。

A.存储密度大 B.插入运算方便C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示3、设有一个栈,元素的进栈次序为A, B, C, D, E,下列哪个是不可能的出栈序列(3)。

A.A, B, C, D, E B.B, C, D, E, AC.E, A, B, C, D D.E, D, C, B, A4、若二叉树的根结点所在的层次为第1层,则该二叉树的第k层上至多有(4)个结点。

2k B.2k C.2k-1 D.2k+1A. 15、设单链表中指针p指向结点m,若要删除m的后继结点(假设该后继结点存在),则需修改指针的操作为(5)。

A.p->next=p->next->next; B.p=p->next;C.p=p->next->next; D.p->next=p;6、下面程序段的时间复杂度为(6)。

for(int i=0; i<m; i++)for(int j=0; j<n; j++) a[i][j] = i*j;A.O(m2) B.O(n2) C.O(m+n) D. O(m*n)7、非空的循环单链表head的尾结点指针p满足(7)。

A.p==NULL B.p== head C.p->next==head D.p->next==NULL8、已知二维数组A[0..9,0..9]中,元素a[2][0]的地址为560,每个元素占4个字节,则元素a[1][0]的地址为(8)。

A. 518B. 520C. 522D. 5249、在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为(9)。

A.rear%n= = front B.(front+l)%n= = rearC.rear%n -1= = front D.(rear+l)%n= = front10、假设在一棵二叉树中,度为2的结点数为15,度为1的结点数为10个,则该二叉树的分支总数为(10)个。

《数据结构》期中题库及答案

《数据结构》期中题库及答案

一、判断题: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、只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。

数据结构(期中测试)

数据结构(期中测试)
数据结构(期中测试 数据结构 期中测试) 期中测试
填空: 一.填空 填空 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;

10级数据结构期中考试试题

10级数据结构期中考试试题
一、单项选择题(共20题,每题2分,共40分) 1、数据的运算定义在数据的逻辑结构上,只有确定了( 实现这些运算。 A、数据对象 B、逻辑结构 C、存储结构 D、数据操作 2、基本的逻辑结构包括( )。 A、树型结构、图状结构、线性结构和非线性结构 B、集合结构、线性结构、树型结构和非线性结构 C、集合结构、树型结构、图状结构和非线性结构 D、集合结构、线性结构、树型结构和图状结构
12、对于一个头指针为headபைடு நூலகம்带头结点的单链表,判定该表为空表的条 件是( )。 A、head==NULL B、head->next==NULL C、head->next==head D、head!=NULL 13、在双向链表指针p指向的结点前插入一个指针q指向的结点操作是( )。 A、p->prior=q;q->next=p;p->prior->next=q;q->prior=q; B、p->prior=q;p->prior->next=q;q->next=p;q->Prior=p->prior; C、q->next=p;q->prior=p->prior;p->prior->next=q;p->prior=q; D、q->prior=p->prior;q->next=q;p->prior=q;p->prior=q; 14、链表不具有的特点是( )。 A、插入、删除不需要移动元素 B、可随机访问任一元素 C、不必事先估计存储空间 D、所需空间与线性表长度成正比 15、当实际问题具有后进先出的特性且线性表有确定的最大长度,表长 变化不大时应选择( )作为线性表的存储结构。 A、顺序栈 B、链栈 C、顺序队列 D、链队列 16、若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则 第j个输出元素是( )。 A、i-j-1 B、i-j C、j-i+1 D、不确定 17、有六个元素按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 18、用链接方式存储的队列,在进行删除运算时( A、仅修改头指针 B、仅修改尾指针 C、头、尾指针都要修改 D、头、尾指针可能都要修改 )。

数据结构期中复习题--完整版!

数据结构期中复习题--完整版!
(1)用最少时间在表中查找数值为x的元素;
(2)若找到将其与后继元中并使表中元素仍递增有序
3.已知一个带有头结点的单链表,假设该链表只给出了头指针L,在不改变链表的前提下,
请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数),若查找成功,算法输出该结点的data域的值,并返回0。要求:
A.O(1) B.O(n) C.O(m) D.O(m+n)
12.将两个各有n1个n2个元素的有序表(递增)归并成一个有序表,仍保持其递增顺序,则最少的比较次数是()。
A.n1 B.n2 C.n1+n2-1 D.min(n1,n2)
13.已知L是带头结点的单链表,结点p既不是首结点(第一个结点),也不是尾结点,删除p结点的直接后继结点的语句序列是()
10.已知L1、L2分别为两个单循环链表的头结点指针,m、n分别为L1、L2表中数据结点个数。要求设计一个算法,用最快速度将两表合并成一个带头结点的单循环链表。
11.已知不带头结点的线性表list,链表中结点构造为(data,next),其中data为数据域,next为指针域。请写一算法,将该链表按结点数据域的值的大小从小到大重新链接。要求链接过程中不得使用除该链表以外的任何链接点空间。
2.【答案】D
本题程序中每次循环将y的值增加1,然后比较n与y+1的平方大小,所以总共要进行根号n次比较。
3.【答案】D
在线性表的第1至第n个位置插入一个数据元素显然是允许的,紧挨在线性表最后那个数据元素后面插入一个数据元素也是允许的,因此,i的合法值应该是1≦i≦n+1。
4.【答案】C
只有删除非空线性表的第1至第n个数据元素才是可能的,因此,i的合法值应1≦i≦n。

数据结构 期中试卷

数据结构 期中试卷

《数据结构》期中试卷一、填空题(每空2分,共44分)1、数据结构可分为_线性结构_,__树形结构___和__图形结构__。

2、算法的效率包括时间与空间两个方面,分别称为_时间复杂度_与__空间复杂度_。

3、向一个长度为n的线性表的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动 _n-i_个元素。

4、线性表的存储结构常用的有_顺序存储_、_链式存储___两种。

5、、队列的特性是_先进先出_,而栈的特性是_后进先出_。

6、折半查找算法的时间复杂度为:_____________;顺序查找算法的时间复杂度为:___O(N)__________;7、链式存储中结点分为两个域,分别是__数据域__和__ 指针域__。

8、广义表A=((a1),(a2,……,an))的表头为____(a1)_____,表尾为__(a2,……,an) __,用表头和表尾描述a2=_ (head(head(tail(A)))__。

9、构造散列函数的方法通常有_平方取中法_,_移位法__,___数字分析法__,__除留余数法__四种。

10、已知线性表的起始存储位置为b,表中任意一个元素所占用的存储单元为k 个,则表中任意一元素ai的存储位置LOC(ai)为__b+(i-1)*k____________________。

二、选择题(每题3 分,共18分)1、线性表是一个( A )A、有限序列,可以为空B、有限序列,不能为空C、无限序列,可以为空D、无限序列,不能为空2、线性表采用链式存储时,其地址( D )A、必须是连续的B、部分地址必须是连续的C、一定是不连续的D、连续与否均可以3、已知某顺序线性表有20个元素,其首地址为20,每个元素占2个存储空间,则第15个元素的存储位置为( D )A、35B、40C、45D、484、进栈顺序为ABC,以下不可能的出栈顺序是( C )A、ABCB、BACC、CABD、CBA5、采用折半查找的前提是( D )A、线性数据集合B、元素分成块C、用二叉排序树存储D、按关键字有序6、索引顺序查找又称分块查找,它要求索引表必须( A ),各子块必须“按块有序”。

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

}
void searchinsert(int x; pnode t) //t为二叉排序树的根指针
{ if ( ① )
{ p=malloc(size);
p→key= ② ;
p→left=NULL;
p→right= ③ ;
t=p; }
else if (x<t→key) searchinsert(x, t→left)
⑦ 队列是一个具有后进先出性质的线性数据结构。
⑧ 串的数据元素类型只能是字符。
⑨ 若一棵二叉树的先序和后序遍历序列正好相反,则该二叉树一定只
有一个结点。
⑩ 顺序表的存储密度一定比链表的存储密度大。
四、应用题(共20分,每小题5分)
1 设用于通讯的电文仅由7个字母组成,字母在电文中出现的频率分别
为3,12,9,6,17,21,32。
6 已知L是一单链表,p^结点既不是首元结点,也不是尾结点,那么在
p^结点后插入s^结点的语句序列是 ⑥ ,删除p^结点的直接后继的语句
序列是 ⑦ 。
1 s→next=p→next
2 p→next=s→next
3 p→next=p→next→next
4 free(q) 5 q=p→next 6 p→next=s 7 深度为6的二叉树最多有 ⑧ 个结点。 A) 64 B) 63 B) 32 D) 31 8为了提高内存空间的利用率和减少溢出的可能性,由两个栈共享一片 连续的存储空间时,
构。
4已知一棵二叉树的前序遍历的结果是ABECDFGHIJ, 中序遍历的结果是
EBCDAFHIGJ, 试画出这棵二叉树。
五、算法填空题(共10分)
1下面是一个将关键字值插入到二叉排序树中的算法,请在划线处填上
正确的语句。
typedef struct pnode
{ int key;
struct node *left, *right;
5 设rear是指向非空带头结点的循环链表的尾指针,则删除首元结点的
操作为 ⑤ 。
A) s=rear; rear=rear→next; free(s)
B) rear=rear→ext; free(rear)
C) rear=rear→next→next; free(rear)
D) s=rear→next→next; rear→next→next=s→next; free(s)
应将两栈的 ⑨ 分别设在这片内存空间的两端,这样,只有当 ⑩
时,才产生上溢。
A) 栈底 B)栈顶 C) 两个栈的栈顶同时到达栈空间的中心点 D)两个栈的栈顶在栈空间的某一点相遇
三、是非题(共10分)在下面的说法中,正确的打(√),错误的打 (×)
题①②③④⑤⑥⑦⑧⑨⑩小


选 择
① 在二叉树的先序序列中,若结点u在结点v之前,则u一定是v的祖
A) 2 B) 3 C) 5 D) 6
2链栈和顺序栈相比,有一个较明显的优点是 ② 。
A) 通常不会出现栈满的情况 B) 通常不会出现栈空的情况
C) 插入操作更加方便
D) 删除操作更加方便
3设森林T中有4棵树,第一、二、三、四棵树的结点个数分别是n1,
n2,n3和n4,那么当把森林T转换成一棵二叉树后,其根结点的右子树 上有 ③ 个结点。
A) n1-1 B) n1 C) n1+n2+n3 D) n2+n3+n4
4下面关于线性表的叙述错误的是 ④ 。
A) 线性表采用顺序存储,必须占用一片地址连续的单元;
B) 线性表采用顺序存储,便于进行插入和删除操作;
C) 线性表采用链式存储,不必占用一片地址连续的单元;
D) 线性表采用链式存储,不便于进行插入和删除操作;
结点。 10 设计一个判别表达式中左右括号是否配对的算法,采用 ⑩ 数据结 构最佳。
二、选择题(共20分,每空2分)
题①②③④⑤⑥⑦⑧⑨⑩小


选 择
1设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素出
栈的顺序是s2,s3,s4,s6,s5,s1,则栈的容量至少应该是 ① 。
else ④ ;
}
2在单链表中的p所指结点之前插入一个s所指结点时,可按下述步骤进 行:
s→next= ⑤ ; p→next=s; temp=p→data; p→data= ⑥ ; s→data= ⑦ ;
六、算法题:(共20分) 1.(7分)请写一算法,从顺序表中删除具有最小值的元素并由函数返
回被删元素的值。空出的位置由最后一个元素填补,若顺序表为空则显 示出错信息并退出运行。
请为这7个字母设计哈夫曼编码。
(注:写出设计过程)
2一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示
出来。试求出空格处的内容,并画出该二叉树。
先序序列 B F ICEH G 中序序列D KFIA EJC
后序序列 K
FBHJ G A
3分别用顺序存储结构和链式存储结构画出下图所示二叉树的存储结
#define MAXSIZE 10 typedef struct stbl
{datatype elem[MAXSIZE]; int last; }SqlType; 2.(7分)请编写一算法,在一个按数据元素大小递增的线性链表中插 入一个数据元素,让其仍然保持递增有序。 typedef struct node {datatype data; struct node *next; }Lnode, *Lpointer;
3.(6分)请编写算法求二叉树中度为1的结点的个数。 typedef struct tnode {datatype data; struct tnode *lc, *rc; }btnode, *bitreptr;
先。
② 在线性表的顺序存储结构中,进行插入和删除运算时,移动元素的
个数与该元素在线性表中的位置有关。
③ 顺序存储结构只能用于存储线性,逻辑上相邻的两个元素在物理位置上
并不一定相邻。
⑤ 一棵二叉树中第i层上最大的结点个数为2i-1个。
⑥ 二叉树是树的特殊形式。
华东理工大学继续教育学院 《数据结构》期中试卷(闭卷)
班级 学号
姓名 成绩
一 填空题(共20分,每空2分)





⑤小


解 答







解 答
1设r指向单链表的某一个结点,要在该结点之后插入数据元素x,需执 行的语句是
s=malloc(size); s->data=x; ① ; r->next=s。 2 一棵含有n个结点的二叉树,它的最小深度为 ② 。 3 树有三种常用的存储结构,即孩子链表法,双亲表示法和 ③ 。 4 已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3 的结点,则该树中有 ④ 个叶子结点。 5 将一棵有100个结点的完全二叉树按层编号,则编号为49的结点的双 亲编号为 ⑤ 。 6 设s[maxsize]为一个顺序存储的栈,变量top指向栈顶位置,栈为满的 条件是 ⑥ , 7 一棵哈夫曼树T,其叶子结点的权分别为3,16,7,4,11,这棵哈夫 曼树的带权路径长度为 ⑦ 。 8 若一棵二叉树的叶子数为n,则该二叉树中,左、右子树皆非空的结 点个数为 ⑧ 。 9 用 ⑨ 链表存储线性表,可以从表中任一结点出发都能访问到所有
相关文档
最新文档