计数据结构期中试题
数据结构期中考试试卷
![数据结构期中考试试卷](https://img.taocdn.com/s3/m/1540ce27a9956bec0975f46527d3240c8547a14e.png)
数据结构期中考试试卷一、选择题(每题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. 二叉树的遍历方式包括前序遍历、中序遍历和______遍历。
数据结构试卷(期中考试)
![数据结构试卷(期中考试)](https://img.taocdn.com/s3/m/088aa8601ed9ad51f01df2c6.png)
第页/共 页 《数据结构》期中考试试卷一、选择题(每题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.链表不具有的特点是【 】。
数据结构期中考试题
![数据结构期中考试题](https://img.taocdn.com/s3/m/e62df988a0c7aa00b52acfc789eb172ded6399cb.png)
数据结构期中考试题一、选择题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():检查队列是否为空。
四、综合题某公司需要设计一个学生信息管理系统,主要功能包括添加学生信息、查询学生信息、删除学生信息以及修改学生信息。
请使用合适的数据结构和算法来实现该系统,并说明你的选择理由。
总结:通过本次期中考试题,我们从选择题、简答题到编程题,对数据结构的基本知识和应用有了更深入的了解。
数据结构在计算机科学中扮演着重要的角色,合理的选择和运用数据结构可以提高程序的效率和性能。
希望大家能够加强对数据结构的学习和应用,为解决实际问题提供更有效的解决方案。
数据结构期中考试题
![数据结构期中考试题](https://img.taocdn.com/s3/m/7d939b7a8e9951e79b8927e9.png)
一、单项选择题(每小题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,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( )。
数据结构期中考试试题及答案
![数据结构期中考试试题及答案](https://img.taocdn.com/s3/m/58e086bbd1d233d4b14e852458fb770bf78a3bf6.png)
一、单项选择题(本题总分 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 )。
数据结构期中考试试题及答案
![数据结构期中考试试题及答案](https://img.taocdn.com/s3/m/f5ff5b02a2161479171128d4.png)
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)如果单词重复出现,则只在链表上保留一个。
数据结构期中试卷
![数据结构期中试卷](https://img.taocdn.com/s3/m/b1335c1eb7360b4c2e3f64cd.png)
《数据结构》期中试卷专业________ 学号_________ 姓名________ 成绩_______一、选择题(本大题共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. 在数据结构中,从逻辑上可以把数据结构分成()。
数据结构期中试题
![数据结构期中试题](https://img.taocdn.com/s3/m/5fbe3dfbf705cc1755270976.png)
一、单项选择题(本题共15小题,每小题2分,共30分。
答案必须写在答题栏内,答在其他处不得分。
)1、组成数据的基本单位是CA、数据项B、数据类型C、数据元素D、数据变量2、算法指的是DA.计算机程序B.解决问题的计算方法C.排序算法D.解决问题的有限运算序列3、设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为BA、5,3,4,6,1,2B、3,2,5,6,4,1C、3,1,2,5,4,6D、1,5,4,6,2,34、栈和队列的共同特点是AA、只允许在端点处插入和删除元素B、都是先进后出C、都是先进先出D、没有共同点5、用链接方式存储的队列,在进行插入运算时 DA、仅修改头指针B、头、尾指针都要修改C、仅修改尾指针D、头、尾指针可能都要修改6、栈的插入和删除操作在什么位置进行AA、栈顶B、栈底C、任意位置D、指定位置7、如下陈述中正确的是 AA、串是一种特殊的线性表B、串的长度必须大于零C、串中元素只能是字母D、空串就是空白串8、设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为AA、p->next=p->next->nextB、p=p->nextC、p=p->next->nextD、p->next=p9、下面关于线性表的叙述错误的是 DA、线性表采用顺序存储必须占用一片连续的存储空间B、线性表采用链式存储不必占用一片连续的存储空间C、线性表采用链式存储便于插入和删除操作的实现D、线性表采用顺序存储便于插入和删除操作的实现10、下面程序的时间复杂度为 Bfor(i=1,s=0;i<=n;i++){t=1;for(j=1;j<=i;j++) t=t*j;s=s+t;}A、O(n)B、O(n2)C、O(n3)D、O(n4)11、函数SubString(“DATASTRUCTURE”,5,9)的返回值为 AA、“STRUCTURE”B、“DATA”C、“ASTRUCTUR”D、“DATASTRUCTURE”12、设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为 CA、front->next=s;front=s;B、s->next=rear;rear=s;C、rear->next=s;rear=s;D、s->next=front;front=s;13、字符串的长度是指 CA、串中不同字符的个数B、串中不同字母的个数C、串中所含字符的个数D、串中不同数字的个数14、队列是一种什么的线性表AA、先进先出B、先进后出C、只能插入D、只能删除15、设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为 DA、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;二、单项选择题(本题共15空,每空1分,共15分。
数据结构期中测试题答案
![数据结构期中测试题答案](https://img.taocdn.com/s3/m/045c65140c22590103029d31.png)
《数据结构》期中测试班级:姓名:学号:一、填空题: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所指结点是某双向链表的中间结点,试从下列提供的答案中选择合适的语句序列。
数据结构期中试卷及答案
![数据结构期中试卷及答案](https://img.taocdn.com/s3/m/65721e9a172ded630a1cb622.png)
一、选择题(每小题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 )。
计05期中数据结构试题及答案
![计05期中数据结构试题及答案](https://img.taocdn.com/s3/m/02d1d4fa650e52ea54189870.png)
计05期中数据结构试题及答案数据结构期中试题一. 单项选择题(每项选择2分,共48分)1.在数据结构中,从逻辑上可以把数据结构分成___C____。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构2.线性表是 A 。
(A) 一个有限序列,可以为空; (B) 一个有限序列,不能为空; (C) 一个无限序列,可以为空; (D) 一个无序序列,不能为空。
3.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。
插入一个元素时平均要移动表中的 B 个元素。
(A) n/2 (B) n+1/2 (C) n -1/2 (D) n 4.用链表表示线性表的优点是 C 。
(A)便于随机存取(B)花费的存储空间较顺序存储少 (C)便于插入和删除(D)数据元素的物理顺序与逻辑顺序相同5.某链表中最常用的操作是在最后一个元素之后插入一个元素和删除最后一个元素,则采用 C 存储方式最节省运算时间。
(A)单链表 (B)双链表 (C)带尾指针的单循环链表 (D)双循环链表6线性表的顺序存储结构是一种_A____的存储结构,线性表的链式存储结构是一种_____的存储结构。
A.随机存取 B.顺序存取 C.索引存取 D.散列存取7、若某线性表中最常用的操作是取第i个元素和找第i个元素的前趋元素,则采用B 存储方式最节省运算时间。
(A) 单链表 (B) 顺序表 (C) 双链表 (D) 单循环链表8.算法分析的目的是___C___,算法分析的两个主要方面是__A____。
①A.找出数据结构的合理性B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进D.分析算法的易懂性和文档性②A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性9、栈的特点是① B ,栈和队列都是 C ② 。
①、 A、先进先出 B、后进先出②、 A、顺序存储的线性结构C、操作受限的线性结构C、进优于出D、出优于进B、链式存储的线性结构 D、操作受限的非线性结构10、若进队列的序列为1,2,3,4,则 D 是一个出队序列。
数据结构期中试卷
![数据结构期中试卷](https://img.taocdn.com/s3/m/89c26cf8294ac850ad02de80d4d8d15abe23000f.png)
数据结构期中试卷(考试时间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.队列是插入、删除限制在表的两端的线性表。
数据结构期中考试答案解析
![数据结构期中考试答案解析](https://img.taocdn.com/s3/m/6adb8280534de518964bcf84b9d528ea81c72f35.png)
数据结构期中试卷及答案解析考试说明考试说明:考察前五章小题,难度接近真题。
满分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。
数据结构期中题库及答案
![数据结构期中题库及答案](https://img.taocdn.com/s3/m/bbd017ebf71fb7360b4c2e3f5727a5e9856a2764.png)
一、判断题: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、希尔排序在较率上较直接接入排序有较大的改进;但是不稳定的;30、在平均情况下,快速排序法最快,堆积排序法最节省空间;31、快速排序法是一种稳定性排序法;32、算法一定要有输入和输出;33、算法分析的目的旨在分析算法的效率以求改进算法;34、非空线性表中任意一个数据元素都有且仅有一个直接后继元素;35、数据的存储结构不仅有顺序存储结构和链式存储结构,还有索引结构与散列结构;36、若频繁地对线性表进行插入和删除操作,该线性表采用顺序存储结构更合适;37、若线性表采用顺序存储结构,每个数据元素占用4个存储单元,第12个数据元素的存储地址为144,则第1个数据元素的存储地址是101;38、若长度为n的线性表采用顺序存储结构,删除表的第i个元素之前需要移动表中n-i+1个元素;39、符号p->next出现在表达式中表示p所指的那个结点的内容;40、要将指针p移到它所指的结点的下一个结点是执行语句p←p->next;41、若某堆栈的输入序列为1,2,3,4,则4,3,1,2不可能是堆栈的输出序列之一;42、线性链表中各个链结点之间的地址不一定要连续;43、程序就是算法,但算法不一定是程序;44、线性表只能采用顺序存储结构或者链式存储结构;45、线性表的链式存储结构是通过指针来间接反映数据元素之间逻辑关系的;46、除插入和删除操作外,数组的主要操作还有存取、修改、检索和排序等;47、稀疏矩阵中0元素的分布有规律,因此可以采用三元组方法进行压缩存储;48、不管堆栈采用何种存储结构,只要堆栈不空,可以任意删除一个元素;49、确定串T在串S中首次出现的位置的操作称为串的模式匹配;50、深度为h的非空二叉树的第i层最多有2i-1 个结点;51、满二叉树也是完全二叉树;52、已知一棵二叉树的前序序列和后序序列可以唯一地构造出该二叉树;53、非空二叉排序树的任意一棵子树也是二叉排序树;54、对一棵二叉排序树进行前序遍历一定可以得到一个按值有序的序列;55、一个广义表的深度是指该广义表展开后所含括号的层数;56、散列表的查找效率主要取决于所选择的散列函数与处理冲突的方法;57、序列初始为逆序时,冒泡排序法所进行的元素之间的比较次数最多;58、已知指针P指向键表L中的某结点,执行语句P=P-〉next不会删除该链表中的结点;59、在链队列中,即使不设置尾指针也能进行入队操作;60、如果一个串中的所有字符均在另一串中出现,则说前者是后者的子串;61、设与一棵树T所对应的二叉树为BT,则与T中的叶子结点所对应的BT中的结点也一定是叶子结点;62、若图G的最小生成树不唯一,则G的边数一定多于n-1,并且权值最小的边有多条其中n 为G的顶点数;63、给出不同的输入序列建造二叉排序树,一定得到不同的二叉排序树;64、由于希尔排序的最后一趟与直接插入排序过程相同,因此前者一定比后者花费的时间多;65、程序越短,程序运行的时间就越少;66、采用循环链表作为存储结构的队列就是循环队列;67、堆栈是一种插入和删除操作在表的一端进行的线性表;68、一个任意串是其自身的子串;69、哈夫曼树一定是完全二叉树;70、带权连通图中某一顶点到图中另一定点的最短路径不一定唯一;71、折半查找方法可以用于按值有序的线性链表的查找;72、稀疏矩阵压缩存储后,必会失效掉随机存取功能;73、由一棵二叉树的前序序列和后序序列可以唯一确定它;74、在n个结点的元向图中,若边数在于n-1,则该图必是连通图;75、在完全二叉树中,若某结点元左孩子,则它必是叶结点;76、若一个有向图的邻接矩阵中,对角线以下元素均为0,则该图的拓扑有序序列必定存在;77、树的带权路径长度最小的二叉树中必定没有度为1的结点;78、二叉树可以用0≤度≤2的有序树来表示;79、一组权值,可以唯一构造出一棵哈夫曼树;80、101,88,46,70,34,39,45,58,66,10是堆;81、将一棵树转换成二叉树后,根结点没有左子树;82、用树的前序遍历和中序遍历可以导出树的后序遍历;83、在非空线性链表中由p所指的结点后面插入一个由q所指的结点的过程是依次执行语句:q->next=p->next;p->next=q;84、非空双向循环链表中由q所指的结点后面插入一个由p指的结点的动作依次为:p->prior=q, p->next=q->next,q->next=p,q->prior->next←p;85、删除非空链式存储结构的堆栈设栈顶指针为top的一个元素的过程是依次执行:p=top,top= p->next,free p;86、哈希的查找无需进行关键字的比较;87、一个好的哈希函数应使函数值均匀的分布在存储空间的有效地址范围内,以尽可能减少冲突;88、排序是计算机程序设计中的一种重要操作,它的功能是将一个数据元素或记录的任意序列,重新排列成一个按关键字有序的序列;89、队列是一种可以在表头和表尾都能进行插入和删除操作的线性表;90、在索引顺序表上实现分块查找,在等概率查找情况下,其平均查找长度不与表的个数有关,而与每一块中的元素个数有关;91、对于有向图,顶点的度分为入度和出度,入度是以该顶点为终点的入边数目;出度是以该顶点为起点的出边数目,该顶点的度等于其入度和出度之和;92、无向图的邻接矩阵是对称的有向图的邻接矩阵是不对称的;93、具有n个顶点的连通图的生成树具有n-1条边二、填空题:1、数据结构课程讨论的主要内容是数据的逻辑结构、存储结构和______________;2、数据结构算法中,通常用时间复杂度和__________________两种方法衡量其效率;3、一个算法一该具有______,______,____,______和____这五种特性;4、若频繁地对线性表进行插入与删除操作,该线性表应采用____________存储结构;5、在非空线性表中除第一个元素外,集合中每个数据元素只有一个_______;除最后一个元素之外,集合中每个数据元素均只有一个_________;6、线性表中的每个结点最多有________前驱和____________后继;7、______链表从任何一个结点出发,都能访问到所有结点;8、链式存储结构中的结点包含____________域,_______________域;9、在双向链表中,每个结点含有两个指针域,一个指向______结点,另一个指向________结点;10、某带头结点的单链表的头指针head,判定该单链表非空的条件______________;11、在双向链表中,每个结点含有两个指针域,一个指向_______结点,另一个指向_____结点;12、已知指针p指向单链表中某个结点,则语句p->next=p->next->next的作用__删除p 的后继结点_;13、已知在结点个数大于1的单链表中,指针p指向某个结点,则下列程序段结束时,指针q 指向p的_____________结点;q=p;whileq->next=pq=q->next;14、若要在单链表结点P后插入一结点S,执行的语句_______________;15、线性表的链式存储结构地址空间可以_________,而向量存储必须是地址空间___________;16、栈结构允许进行删除操作的一端为_____________;17、在栈的顺序实现中,栈顶指针top,栈为空条件______________;18、对于单链表形式的队列,其空队列的F指针和R指针都等于__________________;19、若数组s0..n-1为两个栈s1和s2的共用存储空间,仅当s0..n-1全满时,各栈才不能进行栈操作,则为这两个栈分配空间的最佳方案是:s1和s2的栈顶指针的初值分别为_________;20、允许在线性表的一端插入,另一端进行删除操作的线性表称为_______;插入的一端为______,删除的一端为______;21、设数组Am为循环队列Q的存储空间,font为头指针,rear为尾指针,判定Q为空队列的条件____________________;22、对于顺序存储的队列,存储空间大小为n,头指针为F,尾指针为R;若在逻辑上看一个环,则队列中元素的个数为___________;23、已知循环队列的存储空间为数组data21,且头指针和尾指针分别为8和3,则该队列的当前长度__________;24、一个串的任意个连续的字符组成的子序列称为该串的________,包含该子串的串称为________;25、求串T在主串S中首次出现的位置的操作是________________;26、在初始为空的队列中插入元素A,B,C,D以后,紧接着作了两次删除操作,此时的队尾元素是__________;27、在长度为n的循环队列中,删除其节点为x的时间复杂度为_______________;28、已知广义表L为空,其深度为___________;29、已知一顺序存储的线性表,每个结点占用k个单元,若第一个结点的地址为DA1,则第i 个结点的地址为______________;30、设一行优先顺序存储的数组A56,A00的地址为1100,且每个元素占2个存储单元,则A23的地址为_____________;31、设有二维数组A919,其每个元素占两个字节,第一个元素的存储地址为100,若按行优先顺序存储,则元素A6,6的存储地址为______________,按列优顺序存储,元素A6,6的存储地址为______________;32、在进行直接插入排序时, 其数据比较次数与数据的初始排列________关;而在进行直接选择排序时,其数据比较次数与数据的初始排列__________关;33、假设以行为优先存储的三维数组A567,A000的地址为1100,每个元素占两个存储单元,则A432的地址为_______;34、设二维数组Amn按列优先存储,每个元素占1个存储单元,元素A00的存储地址locA00,则A ij的存储地址locA ij=____________________;35、稀疏矩阵一般采用__________方法进行压缩存储;36、稀疏矩阵可用_________进行压缩存储,存储时需存储非零元的________、________、________;37、若矩阵中所有非零元素都集中在以主对角线为中心的带状区域中,区域外的值全为0,则称为__________;38、若一个n 阶矩阵A中的元素满足:A ij=Aji 0<=I ,j<=n-1则称A为____________矩阵;若主对角线上方或下方的所有元素均为零时,称该矩阵为______________;39、对于上三角形和下三角形矩阵,分别以按行存储和按列存储原则进行压缩存储到数组Mk中,若矩阵中非0元素为A ij,则k对应为________和__________;40、设有一上三角形矩阵A55按行压缩存储到数组B中,B0的地址为100,每个元素占2个单元,则A32地址为____________;41、广义表A,a,b,d,e,i,j,k,则广义表的长度为___________,深度为___________;42、已知广义表A=a,b,c,d,e,f,则运算headhead tailA=___ ________;43、已知广义表ls =a,b,c,d,e,运用head和tail函数取出ls中的原子b的运算是_____;44、在树结构里,有且仅有一个结点没有前驱,称为根;非根结点有且仅有一个___________,且存在一条从根到该结点的_______________;45、度数为0的结点,即没有子树的结点叫作__________结点或_________结点;同一个结点的儿子结点之间互称为___________结点;46、假定一棵树的广义表为ABe,CFh,i,j,g,D,则该树的度为___________,树的深度为_________,终端结点为______,单分支结点为,双分支结点个数为 _______,三分支结点为_______,C结点的双亲结点是______,孩子结点是______;48、完全二叉树、满二叉树、线索二叉树和二叉排序树这四个名词术语中,与数据的存储结构有关系的是_____________;47、有三个结点的二叉树,最多有________种形状;48、每一趟排序时从排好序的元素中挑出一个值最小的元素与这些未排小序的元素的第一个元素交换位置,这种排序方法成为_____________排序法;49、高度为k的二叉树具有的结点数目,最少为_____,最多为_____;50、对任何一棵二叉树,若n0,n1,n2分别是度为0,1,2的结点的个数,则n0=_______;51、在含100个结点的完全二叉树,叶子结点的个数为_______;52、将一个数据元素或记录的任意序列,重新排列成一个按关键字有序的序列叫_____;53、若一棵满二叉树含有121个结点,则该树的深度为_________;54、一个具有767个结点的完全二叉树,其叶子结点个数为________;55、深度为90的满二叉树,第11层有________个结点;56、有100个结点的完全二叉树,深度为________;57、设一棵二叉树中度为2的结点10个,则该树的叶子个数为________;58、若待散列的序列为18,25,63,50,42,32,9,散列函数为Hkey=key MOD 9,与18发生冲突的元素有_____________个;59、含有3个2度结点和4个叶结点的二叉树可含__________个1度结点;60、一棵具有5层满二叉树中节点总数为___________;61、一棵含有16个结点的完全二叉树,对他按层编号,对于编号为7的结点,他的双亲结点及左右结点编号为______、______、_______;62、深度为k设根的层数为1的完全二叉树至少有_______个结点, 至多有_______个结点;63、若要对某二叉排序树进行遍历,保证输出所有结点的值序列按增序排列,应对该二叉排序树采用________遍历法;64、在序列2,5,8,11,15,16,22,24,27,35,50中采用折半查找二分查找方法查找元素24,需要进行______________次元素之间的比较;65、设有10个值,构成哈夫曼树,则该哈夫曼树共有______个结点;66、从树中一个结点到另一个结点之间的分支构成这两个结点之间的____________;67、关键字自身作为哈希函数,即Hk=k,也可自身加上一个常数作为哈希函数,即Hk=k+C这种构造哈希函数的方式叫____________;68、对于一个图G,若边集合EG为无向边的集合,则称该图为____________;69、对于一个图G,若边集合EG为有向边的集合,则称该图为____________;70、对于有向图,顶点的度分为入度和出度,以该顶点为终点的边数目叫________;以该顶点为起点的边数目叫_________;71、一个无向图采用邻接矩阵存储方法,其邻接矩阵一定是一个______________;72、有一个n个顶点的有向完全图的弧数_____________;73、在无向图中,若从顶点A到顶点B存在_________,则称A与B之间是连通的;74、在一个无向图中,所有顶点的度数之和等于所有边数的___________倍;75、一个连通图的生成树是该图的____________连通子图;若这个连通图有n个顶点, 则它的生成树有__________条边;76、无向图的邻接矩阵是一个_____________矩阵;77、如果从一无向图的任意顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是_____ _______;78、若采用邻接表的存储结构,则图的广度优先搜索类似于二叉树的____________遍历;79、若图的邻接矩阵是对称矩阵,则该图一定是________________;80、从如图所示的临接矩阵可以看出,该图共有______个顶点;如果是有向图,该图共有______条弧;如果是无向图,则共有________条边;81、如果从一个顶点出发又回到该顶点,则此路径叫做___________;82、一个具有个n顶点的无向图中,要连通全部顶点至少需要________条边;83、给定序列{100, 86, 48, 73, 35, 39, 42, 57, 66, 21}, 按堆结构的定义, 则它一定_________堆;84、从未排序序列中选择一个元素,该元素将当前参加排序的那些元素分成前后两个部分,前一部分中所有元素都小于等于所选元素,后一部分中所有元素都大于或等于所选元素,而此时所选元素处在排序的最终位置;这种排序法称为_____________排序法;85、折半搜索只适合用于___________________;86、结点关键字转换为该结点存储单元地址的函数H称为_____________或叫__________;87、在索引查找中,首先查找________,然后查找相应的_________,整个索引查找的平均查找长度等于查找索引表的平均长度与查找相应子表的平均查找长度的_______;三、选择题:1.数据结构通常是研究数据的及它们之间的联系;A存储和逻辑结构B存储和抽象C理想和抽象D理想与逻辑2.在堆栈中存取数据的原则是 ;A先进先出B后进先出C先进后出D随意进出3.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子的编号为______;4.对于如图所示二叉树采用中根遍历,正确的遍历序列应为5.设有100个元素,用折半查找法进行查找时,最大比较次数是_____ ;6.快速排序在_____情况下最易发挥其长处;A.被排序数据中含有多个相同排序码B.被排序数据已基本有序C.被排序数据完全无序D.被排序数据中最大值和最小值相差悬殊7.由两个栈共享一个向量空间的好处是______;A减少存取时间,降低下溢发生的机率B节省存储空间,降低上溢发生的机率C减少存取时间,降低上溢发生的机率D节省存储空间,降低下溢发生的机率8.某二叉树的前序和后序序列正好相反,则该二叉树一定是_____的二叉树A空或者只有一个结点B高度等于其结点数C任一结点无左孩子D任一结点无右孩子9.设散列表长m=14,散列函数HK=K%11,已知表中已有4个结点:r15=4; r38=5; r61=6;r84=7,其他地址为空,如用二次探测再散列处理冲突,关键字为49的结点地址是________;A8 B3C5 D910.在含有n个项点有e条边的无向图的邻接矩阵中,零元素的个数为________;11.图的深度优先遍历类似于二叉树的_______;A.先序遍历B.中序遍历C.后序遍历D.层次遍历12.设长度为n的链队列用单循环链表表示,若只设头指针,则入队操作的时间复杂度为_______;A. O1B. Olog2nC. OnD. On213.堆的形状是一棵_______;A.二叉排序树B.满二叉树C.完全二叉树D.平衡二叉树14.一个无向连连通图的生成树是含有该连通图的全部项点的_______;A.极小连通子图B.极小子图C.极大连通子图D.极大子图15.一个序列中有10000个元素,若只想得到其中前10个最小元素,最好采用_______方法A.快速排序B.堆排序C.插入排序D.二路归并排序16.设单链表中结点的结构为typedef struct node { ElemType data;struct node Link;} ListNode;已知指针p所指结点不是尾结点,若在p之后插入结点s,则应执行下列哪一个操作______;A. s->link = p; p->link = s;B. s->link = p->link; p->link = s;C. s->link = p->link; p = s;D. p->link = s; s->link = p;17.设单链表中结点的结构为typedef struct node{ data; node Link; ListNode;非空的循环单链表first的尾结点由p所指向满足:______A. p->link == NULL;B. p == NULL;C. p->link == first;D. p == first;18.计算机识别、存储和加工处理的对象被统称为_________A.数据 B.数据元素C.数据结构D.数据类型19.在具有n个结点的有序单链表中插入一个新结点并使链表仍然有序的时间复杂度是________A.O1 nnlogn n220.队和栈的主要区别是________A.逻辑结构不同B.存储结构不同C.所包含的运算个数不同D.限定插入和删除的位置不同21.链栈与顺序栈相比,比较明显的优点是________A.插入操作更加方便B.删除操作更加方便C.不会出现下溢的情况D.不会出现上溢的情况22.在目标串T0…n-1=”xwxxyxy”中,对模式串p0…m-1=”xy”进行子串定位操作的结果_______23.已知广义表的表头为A,表尾为B,C,则此广义表为________A.A,B,CB.A,B,CC.A,B,CD. A,B,C24.二维数组A按行顺序存储,其中每个元素占1个存储单元;若A11的存储地址为420,A33的存储地址为446,则A55的存储地址为_______25.二叉树中第5层上的结点个数最多为________26.如果某图的邻接矩阵是对角线元素均为零的上三角矩阵,则此图是_______A.有向完全图B.连通图C.强连通图D.有向无环图27.对n个关键字的序列进行快速排序,平均情况下的空间复杂度为_______ 1 lognn nlogn28.对于哈希函数Hkey=key%13,被称为同义词的关键字是_______A.35和41 和39和44 和5129. 由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为________;A、 24B、 48C、 72D、 5330.对包含N个元素的散列表进行检索,平均检索长度 ________A、为 olog2NB、为oNC、不直接依赖于ND、上述三者都不是31. 向堆中插入一个元素的时间复杂度为________;A、 Olog2nB、 OnC、 O1D、 Onlog2n32.下面关于图的存储的叙述中,哪一个是正确的; ________A.用相邻矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关B.用相邻矩阵法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关C.用邻接表法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关D.用邻接表法存储图,占用的存储空间数只与图中边数有关,而与结点个数无关33.输入序列为A,B,C,D,不可能得到的输出序列是______.A. A,B,C,DB.D,C,B,AC.A, C,D,BD.C,A,B,D34.在长度为n的顺序存储的线性表中,删除第i个元素1≤i≤n时,需要从前向后依次前移____个元素;A、n-iB、n-i+1C、n-i-1D、i35.设一个广义表中结点的个数为n,则求广义表深度算法的时间复杂度为____;A、O1B、OnC、On2D、Olog 2 n36.假定一个顺序队列的队首和队尾指针分别为f和r,则判断队空的条件为 ____;A、f+1==rB、r+1==fC、f==0D、f==r37.从堆中删除一个元素的时间复杂以为____;A、O1B、Olog 2 nC、OnD、Onlog 2 n38.若需要利用形参直接访问实参,则应把形参变量说明为____参数;A.指针B.引用C.值D.变量39.在一个单链表HL中,若要在指针q所指结点的后面插入一个由指针p所指向的结点,则执行____;A. q一>next=p一>next;p一>next=q;C. q一>next=p一>next;p一>next=q;B. p一>next=q一>next;q=p; D. p一>next=q一>next;q一>next=p;40.在一个顺序队列中,队首指针指向队首元素的____位置;A.前一个B.后一个C.当前D.最后一个41.向二叉搜索树中插入一个元素时,其时间复杂度大致力____;A O1B O1og2nC OnD Onlog2n42.算法指的是________A.计算机程序B.解决问题的计算方法C.排序算法D.解决问题的有限运算序列43.线性表采用链式存储时,结点的存储地址________A.必须是不连续的B.连续与否均可C.必须是连续的D.和头结点的存储地址相连续44.将长充为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为________ 1 nm m+n45.由两个栈共享一个向量空间的好处是:________A.减少存取时间,降低下溢发生的机率B.节省存储空间,降低上溢发生的机率C.减少存取时间,降低上溢发生的机率D.节省存储空间,降低下溢发生的机率46.设数组DAtAm作为循环队列SQ的存储空间,front为队头指针,reAr为队尾指针,则执行出队操作后其头指针front值为________A. front=front+1B. front=front+1%m-1C. front=front-1%mD. front=front+1%m47.如下陈述中正确的是________A. 串是一种特殊的线性表B. 串的长度必须大于零C. 串中元素只能是字母D. 空串就是空白串48.若目标串的长充为n,模式串的长度为n/3,则执行模式匹配算法时,在最坏情况下的时间复杂度是________1 nn2 n349.一个非空广义表的表头________A.不可能是子表B.只能是子表C.只能是原子D.可以是子表或原子50. 从堆中删除一个元素的时间复杂度为________;A、 O1B、 OnC、 Olog2nD、 Onlog2n51.一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为________52. 从二叉搜索树中查找一个元素时,其时间复杂度大致为________;A、 OnB、 O1C、 Olog2nD、 On253. 根据n个元素建立一棵二叉搜索树时,其时间复杂度大致为________;A、 OnB、 Olog2nC、 On2D、 Onlog2n54.用某种排序方法对关键字序列25,84,21,47,15,27,68,35,20进行排序时,序列的变化情况是如下________:20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,68,84则所采用的排序方法是________A.选择排序B.希尔排序C.归并排序D.快速排序55.适于对动态查找表进行高效率查找的组织结构是________A.有序表B.分块有序表C.二叉排序树D.线性链表56. 若需要利用形参直接访问实参,则应把形参变量说明为________参数;A 指针B 引用C 值D 常量57.链式栈与顺序栈相比,一个比较明显的优点是________;A. 插入操作更加方便B. 通常不会出现栈满的情况C. 不会出现栈空的情况D. 删除操作更加方便58.设单链表中结点的结构为data, link;已知指针q所指结点是指针p所指结点的直接前驱,若在q与p之间插入结点s,则应执行下列哪一个操作________。
信科院09计算机《数据结构》期中试卷)
![信科院09计算机《数据结构》期中试卷)](https://img.taocdn.com/s3/m/d3487d0b76c66137ee0619ba.png)
信科院09计算机《数据结构》期中试卷班级________学号__________姓名___________得分________一.单项选择题(本大题共10小题,每小题2分,共20分)A 1.算法分析的目的是()A.辨别数据结构的合理性B.评价算法的效率C.研究算法中输入与输出的关系D.鉴别算法的可读性A 2.把长度为m的单链表LB接在长度为n的单链表LA之后的算法的时间复杂度为( )A.O(m) B.O(n) C.O(m+n) D.O(1)C 3.在线性表的下列运算中,不改变数据元素之间结构关系的运算是()A.插入B.删除C.定位D.排序B 4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为()A.3,2,6,1,4,5 B.5,6,4,2,3,1C.1,2,5,3,4,6 D.3,4,2,1,6,5A 5.设串sl=″DataStructureswithJava″,s2=″it″,则子串定位函数index(s1,s2,1)的值为()A.15 B.16 C.17 D.18C 6.一个顺序存储的线性表的第一个元素的存储地址是100,每个元素的长度为4,则第4个元素的存储地址是()A. 108B. 112C. 116D. 120A 7.有n个节点的顺序表中,算法的时间复杂度是O(1)的操作是( )A. 访问第i个节点(1≤i≤n)B.在第i个节点后插入一个新节点(1≤i≤n)C.删除第i个节点(1≤i≤n)D.将n个节点从小到大排序C 8. 将递归过程转化为非递归过程需用到( )A.栈B.队C.线性表D.链表B 9. 设有一广义表E=(a,b,(c,d)),其长度为( )A.2 B.3 C.4 D.5D 10.在一个单链表中,若p所指的结点不是最后一个结点,在p之后插入s所指结点,则执行()A. s->next=p; p->next=sB. p-next=s; s->next=pC. p=s; s->next=p->nextD. s->next=p->next; p->next=s二.填空题(本大题共10小题,每小题2分,共20分)1.在数据结构中,数据的逻辑结构分线性结构和非线性结构。
数据结构(期中测试)
![数据结构(期中测试)](https://img.taocdn.com/s3/m/d40f1442a8956bec0975e3f2.png)
填空: 一.填空 填空 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;
数据结构期中考试试卷
![数据结构期中考试试卷](https://img.taocdn.com/s3/m/7ea9fe42fbd6195f312b3169a45177232f60e4ef.png)
数据结构期中考试试卷一、选择题(每题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分)假设你正在开发一个在线图书管理系统,请设计一个数据结构来存储书籍信息,并实现以下功能:- 添加新书- 删除书籍- 查找特定书籍- 列出所有书籍请提供数据结构的设计思路和相应的伪代码。
数据结构期中测试
![数据结构期中测试](https://img.taocdn.com/s3/m/5edbe0482a160b4e767f5acfa1c7aa00b52a9ddb.png)
数据结构期中测试1.定义了一个结构体类型的普通变量,要使用其成员,则应该在变量和成员之间加()。
A:.(正确答案)B:>C:<D:&2.在定义结构体时会有一对{},在{}后不能省略的符号是下列哪一项()。
A:;(分号)(正确答案)B:,(逗号)C:""(双引号)D::(冒号)3.下列选项中关于什么是结构体描述正确的是()。
A:结构体是高级语言中的一种构造类型(正确答案)B:结构体是汇编语言中的一种指针类型C:结构体是高级语言中的一种指针类型D:结构体是C语言中的基本类型4.struct的作用是()。
A:定义整型变量B:定义结构体类型(正确答案)C:定义浮点型变量D:定义字符型变量5.定义了一个学生结构体,其中一个成员变量是年龄,应该使用()类型。
A:int(正确答案)B:floatC:小数D:浮点数6.p是一个结构体指针变量,它有一个成员变量叫sex,则使用格式正确的是()。
A:p->sex(正确答案)B:p%sexC:p#sexD:p&sex7.下列选项中是用来定义结构体的关键字是()。
A:struct(正确答案)B:functionC:staticD:stack8.数据分为原子类型(基本类型)和结构类型(构造类型),结构体属于()。
A:原子类型(基本类型)B:结构类型(构造类型)(正确答案)C:无类型D:以上都不对9.结构体定义会有一对{},在{}后不能省略的是()。
A:;(正确答案)B:.C:/D:>10.product属于结构体类型,要定义这种类型的变量pro定义正确的是()。
A:structproductpro;(正确答案)B:proproduct;C:structpro;D:以上都不对11.数据结构里,树形关系是()。
A:一对一关系B:一对多关系(正确答案)C:多对多关系D:没有关系12.数据结构里,线性结构是()。
A:一对一关系(正确答案)B:一对多关系C:多对多关系D:没有关系13.数据结构里,顺序存储是指()。
数据结构期中复习题--完整版!
![数据结构期中复习题--完整版!](https://img.taocdn.com/s3/m/73cce1697e21af45b307a888.png)
(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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计2006《数据结构》期中试题
班级_____________ 学号_________ 姓名____________ 成绩_______
一、单项选择题(每小题2分共28分)
1.在数据结构中,从逻辑上可以把数据结构分成_____ 。
A.动态结构和静态结构 B. 紧凑结构和非紧凑结构
C.线性结构和非线性结构 D. 内部结构和外部结构
2. 下面程序段的时间复杂度是______。
for(i=0;i<n;i++)
for(j=1;j<m;j++)
A[i][j]=0 ;
A. O(n)
B. O(m+n+1)
C. O(m + n)
D. O(m*n)
3.线性表的链式存储结构是一种_____的存储结构。
A.随机存取 B. 顺序存取 C. 索引存取 D. 散列存取
4.判断一个栈ST(最多元素为m0)为栈满的条件是_____ 。
A.ST->top != 0 B. ST->top == 0
C. ST->top != m0
D. ST->top == m0
5.一个队列的入队序列是1,2,3,4,则队列的输出序列是_______。
A.4,3,2,1 B. 1,2,3,4 C. 1,4,3,2 D. 3, 2, 4, 1
6.在一个单链表中,若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;
7.在一个单链表中,若删除p所指结点的后续结点,则执行______ 。
A.p->next = p->next->next;
B.p = p->next; p->next = p->next->next;
C.p->next = p->next;
D.p = p->next->next;
8.从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删除结点的值,则执行_____ 。
A.x = HS; HS = HS->next;
B. x = HS->data;
C. HS = HS->next; x = HS->data;
D. x = HS->data; HS = HS->next 9. 已知某二叉树的后序遍历序列是dabec, 中序遍历序列是debac, 它的前序遍历是_____ 。
A. acbed B. decab C. deabc D. cedba
10. 对于顺序存储的队列,存储空间大小为n,头指针为F,尾指针为R。
若在逻辑上看一个环,则队列中元素的个数为.______。
A. R - F
B. n + R - F
C. (R-F+1) mod n
D. (n + R-F)mod n
11. 在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若
p-> next - >next = head, 则______
A. p指向头结点
B. p指向尾结点
C. *p的直接后继是头结点
D. *P的直接后继是尾结点
12. 广义表A = (a, (b), (), (c,d,e) )的长度为_____。
A. 4
B. 5
C. 6
D. 7
13. 一棵含18个结点的二叉树的高度至少为______。
A. 3
B. 4
C. 5
D. 6
14. 设有一个10阶的对称矩阵A[10][10],采用压缩存储方式按行将矩阵中下三角部分的元素存入一维数组B[ ]中,A[0][0]存入B[0]中,则A[8][5]在B[ ]中的位置为________。
A.32 B.33 C.41 D.65
15. 具有65个结点的完全二叉树的高度为_______。
(根的层次号为1)
A.8 B.7 C.6 D.5
二、真空题(每空1分共22分)
在线性结构中,第一个结点__没有____ 前趋结点,其余每个结点有且仅有__1__个前趋结点;
最后一个结点____后续结点,其余每个结点有且仅有___个后续结点。
在树形结构中,树根结点没有__前趋___结点,其余每个结点有且仅有__1_个前趋结点;叶子结点没有__后继___结点,其余每个结点的后续结点可以___多个____。
对于顺序存储的栈,因为栈的空间是有限的,在进行___入栈__运算时,可能发生栈的上溢,在进行___出栈__运算时,可能发生栈的下溢。
在树结构里,有且仅有一个结点没有前驱,称为根。
非根结点有且仅有一个__前趋___,且存在一条从根到该结点的__路径___。
栈和队列都是__线性__结构,栈只能在__栈顶___插入和删除元素;队列只能在__队尾____插入元素
6.在栈顶指针为HS的链栈中,判定栈空的条件是____HS->next_= NULL___
7.已知一棵完全二叉树中共有768结点,则该树中共有 __384_____个叶子结点。
8.如图所示的二叉树,回答以下问题:
(1) 这棵树的后序遍历序列为__dbgehifca;
(2) 这棵树的叶子结点是__dghi____;
(3) 这棵树的深度是__4______;
(4) 这棵树的度为___2___。
三、简单应用题(每题5分,共20分)
1、已知稀疏矩阵如图所示,请画出该稀疏矩阵的三元组表
2、已知树T的先序遍历序列为ABDFGCE,后序遍历序列为BFDGACE。
请画出树T。
3、画出如图所示二叉树的中序遍历的线索二叉树(在原图上画出线索)
4、已知5个叶子结点的权值分别为5,9,13,6,11,请画出相应的赫夫曼树,并求带权路径长度。
四、算法阅读理解(每空5分,共30分)
仔细阅读以下算法,在空白处填上正确的语句。
1.在带头结点的单链表L中第i个位置前插入元素e。
typedef int ElemType;
typedef struc LNode{
ElemType data;
struct LNode *next
}LNode, *LinkList
Status ListInsert_L( _____________ , int i, ElemType e)
{ p=L; j=0;
while(p && j<i-1){p = p->next; ++j; }
if (!p || j<i-1) return ERROR;
s = __________________________;
s->data = e;
______________ ;
p->next = s;
return OK;
}// LinkList_L
a
b c
d e f
g h i
A
B
C
D
E
2. 求二叉树的叶子数
typedef struct BinNode{
ElemType data;
struct BinNode *lchild, *rchild; 左右孩子指针
} BinNode,*BinTree
int countleaf(Bintree R);
{ static int i = 0;
if (R)
{ if ( _R->lchild==NULL && R->rchild==NULL_ ) i++; /* 叶子结点*/ _ countleaf (R->lchild)__________ ; /* 递归求左子树中叶子数*/
_countleaf (R->rchild)___________; /* 递归求右子树中叶子数*/ }
return(i);
}。