长江大学数据结构2103复习题
- 格式:doc
- 大小:87.50 KB
- 文档页数:4
一、算法(每 15 分,共 60 分)答要求:①用自然言明所采用算法的思想;② 出每个算法所需的数据构定,并做必要明;③写出的算法程序,并做必要的注。
1、有一个点的表,每个点包括两个域,一个是整型域 info ,另一个是指向下一个点的指域next 。
假表已建立,算法除表中所有重复出的点,使得 info 域相等的点只保留一个。
3、瑟夫(Josephus)是指号1、 2、⋯, n 的 n( n>0)个人按方向坐成一圈,从第s 个人开始按方向数,数到第m 个人出列,然后从出列的下一个人重新开始数,数到第m 的人又出列,⋯,如此重复直到所有的人全部出列止。
要求采用循表构一个算法,模此程。
4、程表的就地逆置。
23.在数A[1..n]中有n个数据,建立一个有点的循表,指h,要求中数据从小到大排列,重复的数据在中只保存一个.5、一个尽可能的高效算法出表的倒数第K 个元素。
3、假以I 和 O 分表示入和出操作。
的初和均空,入和出的操作序列可表示由I 和 O 成的序列,称可以操作的序列合法序列,否称非法序列。
(15 分)( 1)下面所示的序列中哪些是合法的?A. IOIIOIOOB. IOOIOIIOC. IIIOIOIOD. IIIOOIOO( 2)通( 1)的分析,写出一个算法,判定所的操作序列是否合法。
若合法,返回true,否返回false(假定被判定的操作序列已存入一数中)。
5、从入一整数的序列: a1, a2, a3,⋯, an, 写算法:用构存入的整数,当 ai ≠-1 ,将 ai ;当 ai=-1 ,出整数并出。
算法异常情况(入等)出相的信息。
有一个背包可以放入的物品重量S,有 n 件物品,重量分W1, W2, ... ,W n。
能否从 n 件物品中若干件放入背包,使得放入的重量之和正好是S。
布函数 Knap(S,n) 表示背包的解, W i(i=1,2,... ,n) 均正整数,并已序存地在数 W中。
长江大学数据库考研真题1.DB,DBMS和DBS三者的关系是() [单选题] *A.DB包括DBMS和DBSB.DBS包括DB和DBMS(正确答案)C.DBMS包括DBS和DBD.DBS与DB.DBMS无关2.将E-R图转换为关系模式时,如果两实体间的联系是m:n,下列说法正确的是() [单选题] *A.将m方主键(主码)和联系的属性纳入n方的属性中B.将m方属性和n方属性中均增加一个表示级别的属性C.增加一个关系表示联系,其中纳入m方和n方的主键(主码)(正确答案)D.将n方主键(主码)和联系的属性纳入m方的属性中3.设有一个体育项目可以有多个运动员报名,一个运动员课参加多个项目,运动员与体育项目之间是() [单选题] *A.一对一的联系B.一对多的联系C.多对一的联系D.多对多的联系(正确答案)4.数据库系统是由应用程序.DBMS.DB以及DBA组成。
其中核心部分是() [单选题] *A.应用程序B.DBAC.DBMS(正确答案)D.DB5.一个关系中的候选关键字() [单选题] *A.至少一个B.可多个(正确答案)C.必须多个D.至少3个6.在数据库设计中,将E-R图转换成关系数据模型的过程属于() [单选题] *A.需求分析阶段B.逻辑设计阶段(正确答案)C.概念设计阶段D.物理设计阶段7.从关系中抽取所需属性组成新关系的操作称() [单选题] *A.交B.联接C.选择D.投影(正确答案)8.是位于用户和操作系统之间的数据管理软件()。
[单选题] *A.DBMS(正确答案)B.DBC.DBSD.DBA9.数据库概念设计的E-R方法中,用属性描述实体的特征,属性在E-R图中,用()表示()。
[单选题] *A.矩形B.四边形C.菱形D.椭圆形(正确答案)10.数据库概念设计的E-R方法中,实体在E-R图中,用()表示。
[单选题] * A.矩形(正确答案)B.四边形C.菱形D.椭圆形11.数据库概念设计的E-R方法中,实体与实体之间的联系在E-R图中,用()表示。
数据结构试题库及答案第一章概论一、选择题1、研究数据结构就是研究( D )。
A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是( A )。
A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。
A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。
A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是( C )。
for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(m*n)D. O(m+n)6、算法是( D )。
A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。
A. O(n)B. O(nlog2n)C. O(n2)D. O(log2n)8、下面程序段的时间复杂度为( C )。
i=1;while(i<=n)i=i*3;A. O(n)B. O(3n)C. O(log3n)D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的()和运算等的学科。
A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是()。
i=s=0;while(s<n){i++;s+=i;}A. O(n)B. O(n2)C. O(log2n)D. O(n3)11、抽象数据类型的三个组成部分分别为()。
A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是()。
数据结构试卷一、填空题1、链表相对于静态数组而言,当插入和删除结点时(需要/不需要)移动节点。
2、判断指针P已经指向链表尾结点的语句是。
3、数组data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则在队列不空时执行出队的队头指针操作为。
4、若有以下堆栈操作a入栈,b入栈,出栈,c 入栈,出栈,d 入栈,e入栈,出栈,出栈,出栈,则出栈序列为。
5、若指针P指向链表中的某个结点,则把指针P指向其后继结点的语句是。
6、在散列表中如果不同的元素对应于相同的地址,这种情况称为。
7、采用二分查找法要求表中的元素。
8、对于完全二叉树,若某结点的编号为K,则其左孩子的编号是。
二、程序填空题1、Search函数的功能是在以head为头结点的链表中查找数据值为x的结点,如果找到,则将该结点从链表中删除(不释放内存),并返回指向这个结点的指针,否则返回空指针。
请在程序的空白处填上适当的语句以完成以上功能。
每个空白处只允许填写一条语句Node * Search(Node * head,int x){Node * p,*q;p=head;q=head;while( ){q= ;p=p->next;}if p!=NULLq->next= ;return p;}2、void StraightSort(int data[],int n)是实现直接插入排序(升序)的函数,形参data的长度为n+1,data[0]用作“哨兵”。
请在程序的空白处填上适当的语句以完成以上功能。
每个空白处只允许填写一条语句,void StraightSort(int data[],int n){int I,j;for(I=2;I=n;I++){data[0]=data[I];j=I-1;while ( ){ ;j--;;}}三、应用题1、写出以下二叉树的先根遍历和中根遍历序列2. 二叉树的先序遍历序列为 A B C D E F G H I,中序遍历序列为 B C A E D G H F I,画出这棵二叉树。
数据结构复习题
1. 什么是数据结构?请简述其在计算机科学中的重要性。
2. 请列举并解释以下数据结构:数组、链表、栈、队列、树、图。
3. 描述数组的两种基本类型,并说明它们各自的特点。
4. 链表的常见类型有哪些?请解释它们之间的主要区别。
5. 栈和队列的基本原理是什么?请分别给出它们的基本操作。
6. 栈的后进先出(LIFO)特性在哪些应用场景中是必要的?
7. 队列的先进先出(FIFO)特性在哪些应用场景中是必要的?
8. 树结构中,什么是节点的度?请举例说明。
9. 什么是二叉树?请解释二叉树的五种基本形态。
10. 描述二叉搜索树(BST)的特性,并解释其在查找操作中的优势。
11. 图的表示方法有哪些?请说明它们各自的优缺点。
12. 什么是图的遍历?请解释深度优先搜索(DFS)和广度优先搜索(BFS)的工作原理。
13. 请解释图的连通性和强连通性,并给出它们在实际应用中的例子。
14. 什么是排序算法?请列举至少三种排序算法并简要说明它们的原理。
15. 请解释时间复杂度和空间复杂度的概念,并举例说明如何计算它们。
16. 在数据结构中,什么是递归?请给出一个递归算法的例子并解释其工作原理。
17. 请解释动态规划和贪心算法在解决优化问题中的作用。
18. 什么是哈希表?请描述其基本工作原理和冲突解决方法。
19. 描述堆数据结构及其在实现优先队列中的应用。
20. 在算法设计中,什么是分治法?请给出一个分治法的例子并解释其步骤。
复习提纲一、试题来白课后习题,第4、7、10章不涉及二、选择题——选项位置有变化三、填空题川能是选择题变化时來四、设计题,根据耍求画fhER图,指明关键字(P14-P15)五、编程题,选择结构和循环结构,类似实验指导V实验任务2、实验任务3 (3)、实验任务4 (1)(2)六、简答题1、什么是数据库,什么是数据库管理系统,什么是数据库系统?(P2、P4)答:数据库(DB):是长期存储在计算机内的有组织、可共享的大量数据的集合。
数裾库管现系统(DBMS):是-•种用于赞理数据库的计算机软件,能够为数据库提供数裾的定义、建立、维护、查洵和统计等操作功能,并完成对数据完整性、安全性进行控制的功能。
数据库系统(DBS):足指计算机系统中引进数裾库技术后的整个系统构成,由硬件、软件、数据库管理系统(DBMS)、数据库、数据痄系统用户五个部分构成了一个以数据库为核心的完整的运行实体。
2、Access关系数据库包括哪几个数据库对象,它们的作用是什么?(P49)答:对象:表(Table)、查狗(Query)、樹体(Form)、报表(Report)、宏(Macro)、校块(Module)作用:表:是数据庳敁基木的组成单位,是同一类数据的集介体,是稃储数据的单位,建立和规划数据库,首先耍做的就是建立各种数据表,它将各种信息分门別类地存放。
査洵:最常用的功能足从农中的检索特定的数据。
耍齐看的数据通常分布在多个农中,通过査询可以将多个不同农中的数椐检索出来,丼在一个数裾农中©示这些数裾。
窗体:提供了一种方便的浏览、输入及史改数据的界面,通常包括一些吋执行各种命令的控件。
窗体屮包含一些功能元索,用户可以对其编程來确定在窗体屮敁示哪些数据、打开K他窗体或报表,或执行其他各种任务。
报农:用丁•将选定的数据以特记的版式兄示或打印,&表现用户数据的一种有效方式,其内容可以来&某个表或査询。
宏:是一个或对个命令的集合,K屮毎个命令都可以实现特定的功能,通过将这些命令组合起米,可以ft动完成某些经常重复或复杂的操作,用户不必编写仔何代码,就川’以实现一定的交互功能。
数据结构复习题(精⼼整理).docx数据结构复习题(打星号内容可以不考虑)习题1 绪论1.1单项选择题1. 数据结构是⼀门研究⾮数值计算的课程,它研究程序设计问题中数据元素的①、数据信息在计算机中的②以及⼀组相关的运算等的课程。
① A.操作对象 B ?计算⽅法 C.逻辑结构 D.数据映象② A.存储结构B.关系C.运算D.算法2. 数据结构DS(Data Struct)可以被形式地定义为DS= (D, R),其中D 是①的有限集合,R 是D 上的②有限集合。
① A.算法B.数据元素C.数据操作D.数据对象② A.操作B.映象C.存储D.关系3. 在数据结构中,从逻辑上可以把数据结构分成。
A. 动态结构和静态结构B.紧凑结构和⾮紧凑结构C.线性结构和⾮线性结构D.内部结构和外部结构4. 算法分析的⽬的是①,算法分析的两个主要⽅⽽是②。
5. 计算机算法指的是①,它必具备输⼊、输出和②等五个特性。
①A.计算⽅法C. 解决问题的有限运算序列②A.可⾏性、可移植性和可扩充性 C. 确定性、有穷性和稳定性1.2填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。
2. 在线性结构⼬,第⼀个结点前驱结点,其余每个结点有且只有个前驱结点;最后⼀个结点后续结点,其余每个结点有且只有个后续结点。
3. 在树形结构中,树根结点没冇结点,其余每个结点冇仇只冇个直接前驱结点,叶⼦结点没有结点,其余每个结点的直接后续结点可以。
4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。
5. 线性结构中元素Z 间存在关系,树形结构中元素之间存在关系,图形结构中元素Z① A.找出数据结构的合理性C.分析算法的效率以求改进② A.空间复杂性和时间复杂性C.可读性和⽂档性B. 研究算法⼬的输⼊和输出的关系D.分析算法的易懂性和⽂档性B. 」E 确性和简明性 B.排序⽅法D.调度⽅法B.可⾏性、确定性和有穷性 D.易读性、稳定性和安全性间存在关系。
长江大学c语言期末考试题库及详解答案长江大学C语言期末考试题库及详解答案本次C语言期末考试题库涵盖了基础语法、数据结构、程序设计、算法分析等多个方面,旨在帮助学生全面掌握C语言的知识点。
以下是部分精选题目及其详解答案。
一、选择题1. 下列哪个选项是C语言的关键字?A. voidB. intC. floatD. double答案:ABCD。
解析:void、int、float和double都是C语言中的基本数据类型关键字。
2. 以下哪个表达式的结果为真?A. 5 > 3B. (5 > 3) && (4 > 2)C. (5 > 3) || (4 < 2)D. !(5 > 3)答案:B。
解析:选项A为真,但选项B中的逻辑与操作结果为真,选项C中的逻辑或操作结果为真,选项D为假。
二、填空题1. 在C语言中,定义一个整型变量的关键字是______。
答案:int。
2. 若有以下代码段:```cint a = 10;int b = 20;int c = a + b;```则变量c的值是______。
答案:30。
三、简答题1. 请简述C语言中数组的定义和初始化方法。
答案:在C语言中,数组是一种基本的数据结构,用于存储具有相同类型的多个元素。
数组的定义格式为:`typearrayName[arraySize];`,其中type是数据类型,arrayName是数组名,arraySize是数组的大小。
数组的初始化可以使用以下两种方法: - 静态初始化:在定义数组时直接赋值,如`int arr[] = {1, 2, 3};`- 动态初始化:先定义数组,然后使用循环或赋值语句逐个赋值。
四、编程题1. 编写一个C语言程序,实现输入两个整数,输出它们的和。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("它们的和是:%d\n", sum);return 0;}```2. 编写一个C语言程序,实现对一个字符串进行反转。
1. 什么是链表?链表有哪些优点和缺点?答案:链表是一种数据结构,其中每个元素包含数据和指向下一个元素的指针。
链表的优点包括动态分配内存、插入和删除操作方便,缺点是顺序访问需要从头到尾遍历。
2. 什么是二叉树?二叉树有哪些基本操作?答案:二叉树是一种树形数据结构,其中每个节点最多有两个子节点,通常称为左子节点和右子节点。
二叉树的基本操作包括插入、删除、搜索和遍历。
3. 简述哈希表的工作原理。
哈希表有哪些优点和缺点?答案:哈希表是一种基于哈希函数的数据结构,它可以将键映射到相应的值。
哈希表的优点包括快速查找、动态扩展和节省空间。
缺点是可能存在哈希冲突,需要处理冲突情况。
4. 解释栈和队列的基本概念。
它们在计算机科学中有哪些应用?答案:栈是一种后进先出(LIFO)的数据结构,它只能从顶部添加和删除元素。
队列是一种先进先出(FIFO)的数据结构,它可以从一端添加元素,并从另一端删除元素。
栈和队列在计算机科学中有许多应用,包括算法优化、操作系统中的内存管理、数据处理等。
5. 解释并实现一个简单的单链表。
答案:单链表是一种线性数据结构,其中每个元素包含数据和指向下一个元素的指针。
可以通过定义节点类来实现单链表,并在类中实现插入、删除、搜索和遍历等基本操作。
以下是一些参考答案:1. 链表是一种线性数据结构,其中每个元素包含数据和指向下一个元素的指针。
链表的优点包括动态分配内存、插入和删除操作方便,缺点是顺序访问需要从头到尾遍历。
2. 二叉树是一种树形数据结构,它由节点和边组成。
二叉树的基本操作包括插入、删除、搜索和遍历,其中遍历包括前序、中序和后序遍历。
二叉树在计算机科学中可以用于实现二叉搜索树、堆、表达式树等。
3. 哈希表是一种基于哈希函数的数据结构,它可以将键映射到相应的值。
哈希表的优点是查找速度快,缺点是可能存在哈希冲突需要处理。
常见的哈希表实现包括Python中的字典数据类型和Java中的HashMap类。
一、判断题
()1、希尔排序是稳定的排序方法。
()2、顺序栈是一种规定了元素进栈顺序的栈。
()3、广义表(((f)),(b),c,(a),(((d,e))))的长度为5,深度为4。
()4、删除一个二叉树中的一个结点,再重新插入上去,一定能得到原来的二叉排序树。
()5、在任何一种顺序表上都可以进行随机访问。
()6、高度为m的满二叉树叶子节点数量为2的m次方-1。
()7、循环链表中每一个元素都有后继。
()8、高度相同的满二叉树节点数大于或等于完全二叉树节点数。
()9、某线性表采用顺序存储结构,元素长度为8,首地址为1000,则下标为8的(下标从0开始)元素的存储地址为1064。
()10、n个顶点e条边的有向图拓扑排序算法时间复杂度为O(n*e)
二、选择题
1、在计算机存储器内表示时,物理地址和逻辑地址相同并且是连续的,称之为A.逻辑结构B.顺序存储结构
C.链表存储结构D.以上都不对
2、从一个具有n个结点的单链表中查找其值等于x的结点时,在查找成功的情况下,需平均比较()个元素结点
A.n/2 B.n C.(n+1)/2 D.(n-1)/2
3、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表
4、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为()
A.p->next=p->next->next; B.p=p->next;
C.p=p->next->next; D.p->next=p;
5、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s 结点,则须执行()
A.s->next=p->next; p->next=s
B.q->next=s; s->next=p
C.p->next=s->next; s->next=p
D.p->next=s; s->next=q
6、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为()
A.top不变B.top=0 C.top-- D.top++
7、在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针,则判断队满的条件为()
A.rear%n= = front B.(front+l)%n= = rear
C.rear%n -1= = front D.(rear+l)%n= = front
8、队列操作数据的原则是()
A. 先进先出
B. 后进先出
C. 后进后出
D. 不分顺序
9、若将一个10×10阶的对称矩阵压缩存储到一个一维数组中,则该一维数组的大小应该是()。
A、55
B、56
C、45
D、46
10、一个非空的广义表的表尾()
A.不能是子表
B.只能是子表
C.只能是原子
D.是原子或子表
11、对稀疏矩阵进行压缩存储目的是()
A.便于进行矩阵运算B.便于输入和输出C.节省存储空间D.降低运算的时间复杂度
12、树的先根序列等同于与该树对应的二叉树的()
A.先序序列B.中序序列C.后序序列D.层序序列
13、设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1,则T中的叶子数为()
A.5 B.6 C.7 D.8
14、n个顶点,e条边的有向图的邻接矩阵中非零元素有个。
A.n
B.2e
C.e
D.n+e
15、一个带权无向连通图的最小生成树()。
A.有一棵或多棵. B.只有一棵C.一定有多棵D.可能不存在
16、折半查找要求查找表( )
A.有序、顺序存储
B.有序、链式存储
C.无序、顺序存储
D.无序、链式存储
17、下列序列中,构成小根堆的是()
A.(1,2,5,3,4,6,7,8,9,10)B.(10,5,8,4,2,6,7,1,3)C.(10,9,8,7,3,5,4,6,2)D.(1,2,3,4,10,9,8,7,6,18、____________是稳定的排序方法。
A.起泡排序B.快速排序C.堆排序D.希尔排序
三、简答题
1、已知一个6行5列的稀疏矩阵中非零元的值分别为:-90,41,-76,28,-54,65,-8,它们在矩阵中的列号依次为:1,4,5,1,2,4,5。
当以带行表的三元组表作存储结构时,其行表中的值依次为0,0,2,2,3,5(行列下标均从1开始),写出该稀疏矩阵。
2、试分别画出具有3个结点的二叉树的所有不同形态
3、以数据集{3,4,5,8,12,18,20,30}为叶子结点,构造一棵哈夫曼树(要求树中左孩子结点权值不大于右孩子结点的权值),画出你所构造的哈夫曼树,并求其带权路径长度。
4、已知一个二叉树的先序序列为ABDECFHG ,中序序列为DBEAHFCG。
(1)画出该二叉树。
(2)画出该二叉树的先序线索二叉树。
5、画出如下森林对应的二叉树
6、如下所示有向图:
(1)请给出每个顶点的入度和出度。
(2)请画出其邻接矩阵、邻接表。
7、试对图3所示的AOE网络,解答下列问题。
(1)求每个事件的最早发生时间ve [i]和最迟发生时间vl[i]。
(2)求每个活动的最早开始时间ee(s)和最迟开始时间el(s)。
(3)指出哪些活动加速可使整个工程提前完成。
图 3
8、设有一组关键字{9,01,23,14,55,20,84,27},采用哈希函数:H(key)=key mod 7 ,表长为10,用线性探测法解决冲突。
要求:对该关键字序列构造哈希表,并计算查找成功的平均查找长度。
9、对关键字序列(5,8,1,3,9,6,2,7)按从小到大进行快速排序。
(1)写出排序过程中前两趟的划分结果;
(2)快速排序是否是稳定的排序方法?
10、已知一组记录为(19,14,22,1,66,21,83,27,56,13,10),给出采用冒泡排序法从小到大进行排序时每一趟的排序结果。
四、算法设计题
1、设有一个正整数序列组成的有序单链表(按递增次序有序,没有相等的整数存在),试编写能实现下列功能的算法
①确定在序列中比正整数x大的数有几个
②将单链表中比正整数x小的偶数从单链表中删除
2、编写一个算法,求出邻接表表示的有向图中序号为k 的顶点的出度
3、设二叉树用二叉链表表示,设计算法求二叉树的高度。
4、编写一个算法,输出1000以内的所有素数。