06-07数据结构与算法B卷
算法与数据结构期末考试卷

算法与数据结构期末考试卷一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构被称为:A. 链表B. 栈C. 队列D. 数组2. 快速排序算法的时间复杂度在最坏情况下是:A. O(n)B. O(n log n)C. O(n^2)D. O(log n)3. 哈希表解决冲突最常用的方法是:A. 链地址法B. 线性探测法C. 二次探测法D. 双重哈希法4. 二叉树的遍历方式不包括:A. 前序遍历B. 中序遍历C. 后序遍历D. 广度优先遍历5. 堆排序算法是基于:A. 链表B. 栈C. 队列D. 堆...(此处省略其他选择题)二、简答题(每题10分,共20分)1. 请简述二叉搜索树与普通二叉树的区别。
2. 什么是递归?请举例说明递归在算法中的应用。
三、编程题(每题15分,共30分)1. 编写一个函数,实现对链表的反转。
2. 编写一个函数,实现快速排序算法。
四、综合应用题(每题15分,共30分)1. 描述如何使用哈希表实现一个简单的数据库索引系统。
2. 假设你有一个数组,其中包含了一些重复的数值,请编写一个算法来找出数组中出现次数超过数组长度一半的数值。
五、论述题(每题15分,共15分)1. 论述动态规划与贪心算法的区别,并给出一个动态规划问题的例子。
六、附加题(10分,可选做)1. 请设计一个算法,用于检测一个字符串是否是回文。
如果字符串是回文,请返回True,否则返回False。
注意:本试卷中所有题目的答案必须以书面形式给出,编程题需要提供完整的代码实现。
祝各位考生考试顺利,取得优异成绩。
(完整版)中国海洋大学06-07数据结构第1学期A卷+答案

中国海洋大学命题专用纸(首页)2006学年第 1 学期试题名称:数据结构 (A卷) 共 2 页第 1 页专业年级:学号姓名授课教师分数一、简答下列术语:(10分)1、算法的时间复杂度2、栈与队列的异同3、完全二叉树、二叉排序树二、填空(10分)1、在双向循环链表L中,删除指针P所指结点的语句序列是,,free(p)。
2、将下三角矩阵A[1..8,1..8]的下三角部分逐行地存储到起始地址为1000的内存单元中.已知每个元素占4个单元,则A(6,4)的地址为。
3、高度为5的三阶B-树至少有个结点。
4、分别采用堆排序、快速排序、插入排序和归并排序算法对初始状态已为递增序列的数据表进行递增排序,最省时间的是算法。
三、(8分)已知一棵二叉树的中序序列是dcbgeahfijk,后序序列是dcegbfhkjia,请构造出该二叉树。
四、(10分)假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别是0.07,0.08,0.13,0.22,0.18,0.23,0.04,0.05。
请设计它们相应的哈夫曼编码。
使用0~7的二进制表示形式是另一种编码方案,请比较两种方案的优缺点。
五、(10分)设散列表地址空间为0..6,散列函数为H(x)=i mod 7,其中i为键值x中第一个字母在字母表中的序号,若键值的输入序列为Jen,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,用链地址法处理冲突,1)构造散列表;2)求出在等概率情况下,查找成功时的平均查找长度。
六、(15分)(1)对下列数据表,写出采用希尔排序算法排序的每一趟的结果。
(100,12,20,31,1,5,44,66,61,200,30,80,150,4,8)(2)对下列数据表,写出采用快速排序算法排序的第一趟的结果。
(70,12,20,150,44,66,61,200,30,80,28)授课教师张海燕命题教师或命题负责人签字院系负责人签字年月日中国海洋大学命题专用纸(附页)if (!m) return 0;n=Paixu(T→rchild); if (!n) return 0;}return 1;}。
数据结构与算法同步训练模拟试题及答案解析

数据结构与算法同步训练模拟试题及答案解析(1/43)选择题第1题下列叙述中正确的是()。
A.循环队列是队列的一种链式存储结构B.循环队列是队列的一种顺序的存储结构C.循环队列是非线性结构D.循环队列是一种逻辑结构下一题(2/43)选择题第2题算法的有穷性是指()。
A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用上一题下一题(3/43)选择题第3题算法的空间复杂度是指()。
A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数上一题下一题(4/43)选择题第4题定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合{1,2,3,4,5}上一题下一题(5/43)选择题第5题下列叙述正确的是()。
A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对上一题下一题(6/43)选择题第6题下列叙述中正确的是()。
A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构上一题下一题(7/43)选择题第7题下列关于线性链表的叙述中,正确的是()。
A.各数据结点的存储空间可以不连续,但他们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间不需连续C.进行插入数据与删除数据时,不需要异动表中的元素D.以上说法均不对上一题下一题(8/43)选择题第8题下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间上一题下一题(9/43)选择题第9题下列叙述中正确的是()。
《数据结构与算法》试卷

一、选择题1.下列哪种数据结构适合用于实现优先队列?A.栈B.队列C.二叉堆(正确答案)D.链表2.在进行图的深度优先搜索(DFS)时,使用哪种数据结构可以帮助记录已访问过的顶点,从而避免重复访问?A.栈B.队列C.集合(正确答案)D.哈希表3.下列排序算法中,哪种算法的时间复杂度在最坏情况下为O(n2),但在平均情况下和最好情况下可以达到O(nlogn)?A.快速排序(正确答案)B.归并排序C.堆排序D.插入排序4.在二叉树的遍历中,前序遍历的顺序是?A.根节点-> 左子树-> 右子树(正确答案)B.左子树-> 根节点-> 右子树C.左子树-> 右子树-> 根节点D.根节点-> 右子树-> 左子树5.下列哪种查找算法在有序数组中查找特定元素时,具有最优的时间复杂度O(logn)?A.顺序查找B.二分查找(正确答案)C.插值查找D.斐波那契查找6.在哈希表中,处理哈希冲突的一种常见方法是?A.开放寻址法(正确答案)B.链地址法C.再哈希法D.以上都是7.下列关于二叉搜索树(BST)的说法中,哪一项是正确的?A.在BST中,每个节点的左子树只包含小于该节点的数B.在BST中,每个节点的右子树只包含大于该节点的数C.在BST中,每个节点的左子树只包含小于该节点的数,右子树只包含大于该节点的数(正确答案)D.BST中不允许有重复值的节点8.下列哪种算法是解决最短路径问题的经典算法,适用于带权重的图?A.迪杰斯特拉算法(Dijkstra)(正确答案)B.弗洛伊德算法(Floyd)C.贝尔曼-福特算法(Bellman-Ford)D.A*算法(A-star)。
数据结构B卷以及答案

华东交通大学2012—2013学年第一学期考试卷试卷编号: (B )卷数据结构 课程 课程类别:必考生注意事项:1、本试卷共5页,总分100分,考试时间120分钟。
2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。
一、选择题(每题2分,共20分)1、栈和队列的共同特点是( A )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2、用链接方式存储的队列,在进行插入运算时( D ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改 3、以下数据结构中哪一个是非线性结构?( D )A. 队列B. 栈C. 线性表D. 二叉树4、 设指针变量p 指向单链表中结点A ,若删除单链表中结点A ,则需要修改指针的操作序列为( A )。
(A) q=p->next ;p->data=q->data ;p->next=q->next ;free(q); (B) q=p->next ;q->data=p->data ;p->next=q->next ;free(q); (C) q=p->next ;p->next=q->next ;free(q); (D) q=p->next ;p->data=q->data ;free(q);5、 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A [3]的比较序列的下标依次为( D )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,3承诺:我将严格遵守考场纪律,知道考试违纪、作弊的严重性,还知道请他人代考或代他人考者将被开除学籍和因作弊受到记过及以上处分将不授予学士学位,愿承担由此引起的一切后果。
专业 班级 学号 学生签名:6、设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为( A )。
湖北文理学院数据结构试题与答案B

湖北文理学院 2011-2012 学年度下学期《数据结构与算法》试卷B专业:计算机科学与技术姓名: 学号: 班级:一、判断题(本题共10小题,每小题1分,共计10分)。
(正确的打√,错的打×)1、空串和空格串是相同的。
( )2、数据的存储结构是数据及其逻辑结构在计算机中的物理表示。
( )3、大顶堆(最大堆)中,最大值一定为根结点。
( )4、栈是特殊的线性表,它的插入和删除分别在线性表的两端进行。
( )5、稀疏矩阵一般采用三元组顺序表方法压缩存储。
( )6、 若二叉排序树(搜索树)中关键码互不相同,则其中最小元素和最大元素一定是叶子结点。
( )7、有向图用邻接表表示后,顶点i 的出度等于邻接表中顶点i 后链表的长度。
( ) 8、链接线性表是顺序存取的线性表。
( )9、哈希函数进行模除取余时,最好取素数进行模除。
( ) 10、归并排序是一种稳定的排序算法。
( )二、填空题(本题共10小题,每小题 2 分,共计 20分)。
(请将正确答案填入空格内,答案是确定和唯一的)1、在数据结构中,从逻辑上可以把数据结构分成 和 。
2、限在表尾进行插入和删除操作的线性表称为 。
3、实现二分查找(对半搜索)的存储结构仅限于顺序存储结构,且其中元素排列必须是_______的。
4、在拓扑排序中,拓扑序列的第一个顶点必须是 的顶点。
5、在一个长度为n 的顺序表中删除第i 个元素,则需要移动 个元素。
6、二维数组A[6,7],按列优先存储,每个元素占4个字节,A 基址为500,则元素A[4,6]的存储地址是 。
7、深度为k二叉树中最多可有个结点。
8、任意写出二叉树的两种存储结构,分别是和。
9、已知二叉树中叶子数为50,仅有一个孩子的结点数为30,则总结点数是。
10、快速排序平均时间复杂性为,平均空间复杂性。
三、选择题(本题共18小题,每小题 1分,共计 18 分)。
(从下列答案中选出一个正确答案,并将对应的字母填入括号内)1.线性表的顺序存储结构是一种( )的存储结构。
数据结构与算法设计与分析考核试卷

8.在冒泡排序中,每一趟排序都能确定一个元素的最终位置。()
答案:______
9. Prim算法和Kruskal算法都可以用来求解最小生成树问题,但Prim算法总是从某一顶点开始,而Kruskal算法总是从某一权值最小的边开始。()
答案:______
10.在一个递归算法中,如果递归调用不是算法的最后一个操作,那么这种递归称为尾递归。()
B.邻接表适合表示稀疏图
C.邻接多重表适合表示无向图
D.邻接表和邻接多重表适合表示有向图
14.以下哪些算法属于分治算法?()
A.快速排序
B.归并排序
C.二分查找
D.动态规划
15.以下哪些情况下,动态规划比贪心算法更适合解决问题?()
A.存在重叠子问题
B.问题具有最优子结构
C.需要考虑所有可能的选择
D.问题可以通过局部最优达到全局最优
C.插入一个节点
D.查找某个节点
5.以下哪些算法可以用于解决最小生成树问题?()
A. Kruskal算法
B. Prim算法
C. Dijkstra算法
D. Bellman-Ford算法
6.以下哪些数据结构可以用来实现堆?()
A.数组
B.链表
C.栈
D.队列
7.关于图的深度优先遍历和广度优先遍历,以下哪些说法是正确的?()
________________________________
2.动态规划算法通常用于解决最优化问题,请阐述动态规划算法的三个基本要素,并给出一个动态规划问题的实例。
________________________________
________________________________
数据结构与算法试卷及答案8

广州大学学年第学期考试卷课程数据结构与算法考试形式(闭卷,考试)信息学院系专业级班学号:姓名:一、填空题:(每格2分,共20分)1.以{5,6,8,10,15}作为叶子结点的权值所构造的哈夫曼树的带权路径长度是。
2.判断一个无向图是一棵树的条件是。
3.设n0为哈夫曼树的叶子结点数目,则该哈夫曼树共有个结点。
4.一个无序序列可以通过构造一棵树而变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。
5.如果结点A有 3个兄弟,而且B是A的双亲,则B的度是。
6.设有向图有n个顶点和e条边,进行拓扑排序时,总的时间复杂度为7.在排序算法中,每次从未排序的记录中挑出最小(或最大)关键码字的记录,加入到已排序记录的恰当位置,该排序方法叫。
8.用一维数组存放的一棵完全二叉树;ABCDEFGHIJKL。
后序遍历该二叉树的访问结点序列是。
9.设散列函数H(k)=K mod 7,散列表的地址空间为0—6,则关键字为32的元素在哈希表中的下标为。
10.一棵非空二叉树的先序序列和后序序列正好相反,则树的形状是。
二、单项选择题(每题1分,共10分)1.()设一个栈的输入序列是1,2,3,4,5 则下列序列中,是栈的合法输出序列的是:A. 5 1 2 3 4B. 4 5 1 3 2C. 4 3 1 2 5D. 3 2 1 5 42.()在图采用邻接表存储时,求最小生成树的prim 算法的时间复杂度为A. O(n)B. O(n+e)C. O(n2)D. O(n3)3.()下列排序算法中,哪种算法不能保证每趟排序至少能将一个元素放到其最终的位置上?A.快速排序B. shell排序C. 堆排序D. 冒泡排序4.()一棵非空的二叉排序树在先序线索化后,其中值为空的链域的个数是:A.不确定B. 0C. 1D. 25()对于线性表最常用的操作是查找指定序号的元素和在末尾插入元素,则选择哪种最节省时间?A.顺序表 B. 单链表C带头接点的双循环链表D带尾接点的单循环链表6()求解最短路径的Floyd算发的时间复杂度为:A.O(n) B. O(n+c) C. O(n2) D. O(n3)7()数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算发中哪种算法的两趟排序后的结果?A.选择排序 B 冒泡排序 C 插入排序 D 堆排序8()下列序列中,哪个是堆?A.(100,80,55,60,50,40,58,35,20)B.(100,80,55,60,50,40,35,58,20)C.(100,80,55,58,50,40,60,35,20)D.(100,70,55,60,50,40,58,35,20)9()一棵左子树为空的二叉树在先序线索化后,其中空的链域的个数是:A.不确定 B 0 C 1 D 210()算术表达式A+B*(C+D/E)转为后缀表达式后为:A:AB+CDE/*B:ABCDE/+*+C:ABCDE/*++D:ABCDE*/++三、判断题(在括号内填上“√”或“╳”,每题1分,共10分,做错不倒扣)1.()线性表的特点是每个元素都有一个前驱和一个后继。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
江西财经大学
06-07第一学期期末考试试卷
试卷代码:03266B 授课课时:112
课程名称:数据结构与算法适用对象:本科
一、单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。
答案错选或未选者,该题不得分。
每小题2分,共24分。
)
1.数据结构被形式地定义为 (K, R),其中K是____的有限集,R是K上的关系有限集。
A.算法
B.数据元素
C.数据操作
D.逻辑结构
2.在数据结构中,从逻辑上可以把数据结构分成____。
A.动态结构和静态结构
B.紧凑结构和非紧凑结构
C.线性结构和非线性结构
D.内部结构和外部结构
3.以下的叙述中,正确的是____。
A.线性表的存储结构优于链式存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
4.若一个栈的入栈序列是1、2、3、…、n,其输出序列为p1、p2、p3、…、pn,若
p1=n,则pi为____。
A. i
B. n = i
C. n - i +1
D.不确定
5.判断一个循环队列QU (最多元素为m) 为空的条件是____。
A. QU->front == QU->rear
B. QU->front != QU->rear
C. QU->front == (QU->rear+1)%m
D. QU->front != (QU->rear+1)%m
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.串是一种特殊的线性表,其特殊性体现在____。
A.可以顺序存储
B.数据元素是一个字符
C.可以链接存储
D.数据元素可以是多个字符
8.已知某二叉树的后序遍历序列是dabec,中序遍历序列是debac,前序遍历序列是____。
A. acbed
B. decab
C. deabc
D. cedba
9.对于一个满二叉树,m个树叶,n个结点,深度为h,则____。
A. n = h + m
B. h + m = 2n
C. m = h-1
D. n = 2h -1
10.一个有n个顶点的无向图最多有____条边。
A. n
B. n(n-1)
C. n(n-1)/2
D. 2n
11.顺序查找法适合于存储结构为____的线性表。
A. 散列存储
B. 顺序存储或链接存储
C. 压缩存储
D. 索引存储
12.在待排序的元素序列基本有序的前提下,效率最高的排序方法是____。
A. 插入排序
B.选择排序
C.快速排序
D. 归并排序
二、填空题(请在每小题的横线上填入正确内容,每空1分,共7分。
)
1.在线性结构中,第一个结点前驱结点,其余每个结点有且只有1个前驱结点。
2.在无权图G的邻接矩阵中,若A[i][j]等于1,则等于A[j][i] = 。
3.根据二叉树的定义,具有三个结点的二叉树有种不同的形态。
4.空格串是指,其长度等于。
5.在散列存储中,装填因子α的值越大,则存储元素时发生冲突的可能性就。
6.已知模式串t= ‘abacabaaad’,其用KMP法求得的每个字符对应的next函数值
为。
三、简答题(本大题共3小题,每小题5分,共15分)
1.比较静态查找与动态查找的主要区别,它们的基本运算有哪些不同?
2.逻辑结构分哪几种,存储结构有哪几种?
3.在具有n(n>1)个结点的各棵不同形态树中,其中深度最小的那棵树的深度是多少?它
共有多少叶子和非叶子结点?
四、判断题(本大题共10小题,命题正确的在题后括号内写“T”,错误的在题后括号内写“F”,每小题1分,共10分)
1.每种数据结构都应具备三种基本运算:插入、删除、搜索( )。
2.满二叉树不一定是完全二叉树。
( )
3.带权连通图的最小生成树的权值之和一定小于它的其它生成树的权值之和。
( )
4.任一棵二叉搜索树的平均搜索时间都小于用顺序搜索法搜索同样结点的顺序表的平均
搜索时间。
( )
5.线性链表中所有结点的类型必须相同。
( )
6.用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与
图中顶点个数有关,而与图的边数无关( )。
7.在散列法中解决冲突时,其装载因子的取值一定在(0,1)之间。
( )
8.任何一个关键活动延迟,那么整个工程将会延迟。
( )
9.平衡二叉树的左右子树深度之差的绝对值不超过1。
( )
10.n个结点的有向图,若它有n(n-1)条边,则它一定是强连通的。
( )
五、分析应用题(本题共26分,1、4小题各6分,2、3小题各7分)
1.下述算法的功能是什么? (6分)
LinkList Demo(LinkList L)
{ // L 是无头结点单链表
ListNode *Q,*P;
if(L&&L->next){
Q=L;
L=L->next;
P=L;
while (P->next) P=P->next;
P->next=Q; Q->next=NULL;
}
return L;
}
2.将给定的图简化为最小的生成树,要求从顶点1出发。
(7分)
3.设散列表为HT[13], 散列函数为 H (key) = key %13。
用双散列法解决冲突, 对下列
关键码序列 12, 23, 45, 57, 20, 03, 78, 31, 15, 36 造表。
再散列函数为 RH (key)
= (7*key) % 10 + 1, 寻找下一个地址的公式为 H
i = (H
i-1
+ RH (key)) % 13, H
1
= H
(key)。
画出相应的散列表, 并计算等概率下搜索成功的平均搜索长度。
(7分)
4.设待排序的排序码序列为{12, 2, 16, 30, 28, 10, 16*, 20, 6, 18},写出使用快速
排序法每趟排序后的结果。
(6分)
六、算法设计题(本题共18分,第1小题10分,第2小题8分)
1.试设计一个实现下述要求的查找运算函数Locate。
设有一个带表头结点的双向链表L,
每个结点有4个数据成员:指向前驱结点的指针llink、指向后继结点的指针rlink,存放字符数据的成员data和访问频度freq。
所有结点的freq 初始时都为0。
每当在链表上进行一次Locate(L, x) 操作时,令元素值为x的结点的访问频度freq加1,并将该结点前移,链接到与它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。
(10分)
2.设一棵二叉树以二叉链表为存贮结构,设计一个算法将二叉树中所有结点的左,右子
树相互交换。
要求给出二叉链表的类型定义。
(8分)。