南邮数据结构B期末试卷.doc
《数据结构》期终考试试卷(B卷)及答案
适用专业:一、单项选择题(每题2分,共40分)1.算法的时间复杂度是指( )A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数2.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行()。
A.p = q->next ; p->next = q->next; B.p = q->next ; q->next = p;C.q->next = q->next->next; q->next = q; D.p = q->next ; q->next = p->next; 3.下列叙述中正确的是( )A.线性表是线性结构 B. 栈与队列是非线性结构C.线性链表是非线性结构 D. 二叉树是线性结构4.若让元素1,2,3依次进栈,则出栈次序不可能出现()种情况。
A.3,2,1 B.2,1,3 C.3,1,2 D.1,3,25.图的广度优先搜索类似于树的()次序遍历。
A.先根B.中根C.后根D.层次6.具有n个顶点的有向无环图最多可包含()条有向边。
A.n-1 B.n C.n(n-1)/2 D.n(n-1)7.已知单链表A长度为m,单链表B长度为n,若将B联接在A的末尾,其时间复杂度应为( ) 。
A.O(1) B.O(m) C.O(n) D.O(m+n)8.若要在单链表中的结点*p之后插入一个结点*s,则应执行的语句是( )。
A.s->next=p->next; p->next=s; B.p->next=s; s->next=p->next;C.p->next=s->next; s->next=p; D.s->next=p; p->next=s->next;9.假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为( )。
数据结构期末考试试题及答案
数据结构期末考试试题及答案一、选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。
A. 编写代码的时间B. 代码的长度C. 执行代码所需的时间D. 执行代码所需的指令条数2. 下列关于队列的描述,错误的是()。
A. 队列是先进先出(FIFO)的线性表B. 队列允许在一端进行插入操作C. 队列的插入操作称为入队D. 队列的删除操作称为出栈3. 对于长度为n的有序数组,使用二分查找法查找一个元素的平均时间复杂度是()。
A. O(n)B. O(n^2)C. O(log n)D. O(1)4. 在图的遍历中,深度优先搜索(DFS)使用的数据结构是()。
A. 栈B. 队列C. 链表D. 数组5. 哈希表的冲突可以通过多种方式解决,以下哪种不是解决冲突的方法?()A. 开放寻址法B. 链地址法C. 线性探测法D. 排序法6. 一个完全二叉树共有700个节点,它的最大节点数是()。
A. 700B. 701C. 1400D. 14017. 快速排序算法的最坏情况发生在()。
A. 每次选择的基准都是最大值B. 数据已经有序C. 数据已经完全逆序D. 所有数据元素相等8. 在一个具有n个节点的二叉搜索树中,最坏情况下查找一个元素的时间复杂度是()。
A. O(n)B. O(log n)C. O(n^2)D. O(1)9. 堆排序算法中,将一个堆调整为最大堆或最小堆的过程称为()。
A. 堆调整B. 堆构建C. 堆分解D. 堆维护10. 以下哪个不是B树的特性?()A. 所有键值都存储在内部节点和叶子节点中B. 所有叶子节点都在同一层上C. 每个内部节点至多有m个子节点D. 每个内部节点的非叶子子节点都至少有m/2个子节点二、简答题(每题5分,共30分)1. 什么是递归?请举例说明递归算法的应用场景。
2. 请简述图的邻接矩阵和邻接表两种存储方式的优缺点。
3. 解释什么是平衡二叉树,并说明它为什么在实际应用中很重要。
《数据结构》期末考试试题及答案
《数据结构》期末考试试题及答案(2003-2004学年第2学期)单项选择题1、C 2、D 3、A 4、D 5、C 6、D 7、A 8、B 9、C 10、C一、1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为( c)。
(A)、正确性(B). 可行性(C). 健壮性(D). 输入性2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为(d )。
for(i=n-1;i>=0;i--)for(j=0;j<i;j++) S;(A)、n2(B). O(nlgn) (C). O(n) (D). O(n2)3.折半查找法适用于( a )。
(A)、有序顺序表(B)、有序单链表(C)、有序顺序表和有序单链表都可以(D)、无限制4.顺序存储结构的优势是( d )。
(A)、利于插入操作(B)、利于删除操作(C)、利于顺序访问(D)、利于随机访问5.深度为k的完全二叉树,其叶子结点必在第( c )层上。
(A)、k-1 (B)、k (C)、k-1和k (D)、1至k6.具有60个结点的二叉树,其叶子结点有12个,则度过1的结点数为()(A)、11 (B)、13 (C)、48 (D)、377.图的Depth-First Search(DFS)遍历思想实际上是二叉树( a )遍历方法的推广。
(A)、先序(B)、中序(C)、后序(D)、层序8.在下列链队列Q中,元素a出队的操作序列为( a b )(A)、p=Q.front->next; p->next= Q.front->next;(B)、p=Q.front->next; Q.front->next=p->next;(C)、p=Q.rear->next; p->next= Q.rear->next;(D)、p=Q->next; Q->next=p->next;9. Huffman树的带权路径长度WPL等于( c )(A)、除根结点之外的所有结点权值之和(B)、所有结点权值之和(C)、各叶子结点的带权路径长度之和(D)、根结点的值10.线索二叉链表是利用( c )域存储后继结点的地址。
数据结构B期末考试 B卷及参考答案
一、单项选择题(每小题2分,共30分)1.下列关于栈的叙述中,正确的是()。
A.栈底元素一定是最后入栈的元素B.栈操作遵循先进后出的原则C.栈顶元素一定是最先入栈的元素D.以上三种说法都不对2.在数据结构中,与所使用的计算机硬件无关的是数据的()结构。
A.逻辑B.存储C.逻辑和存储D.物理3.以下说法正确的是()。
A.数据项是数据的基本单位B.数据元素是数据的最小单位C.数据结构是带结构的数据项的集合D.一些表面上很不相同的数据可以有相同的逻辑结构4.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?()A.546132 B.453126 C.346512 D.2341565.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为()A.8 B.9 C.10 D.116.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是()A.(100,80,90,60,120,110,130)B.(100, 120, 110,130,80, 60,90)C.(100,60,80,90,120,110,130)D.(100,80, 60,90, 120, 130,110)7.下列陈述中正确的是()A.二叉树是度为2的有序树B.二叉树中结点只有一个孩子时无左右之分C.二叉树中必有度为2的结点D.二叉树中最多只有两棵子树,并且有左右之分8.在含n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为()A.e B.2e C.n2-e D.n2-2e9.栈和队列都是()A.限制存取位置的线性结构B.顺序存储的线性结构C.链式存储的线性结构D.限制存取位置的非线性结构10.在具有n个叶子结点的严格二叉树(即结点的度要么是0要么是2)中,结点总数为()A.2n+1 B.2n C.2n-1 D.2n-211.在循环双链表的p所指的结点之前插入s所指结点的操作是()。
《数据结构》期末考A、B卷(本科)
武夷学院期末考试试卷( 09级计算机科学与技术专业2010 ~2011 学年度第 1 学期) 课程名称 数据结构 A 卷 考试形式 闭卷 考核类型 考试 本试卷共 五 大题,卷面满分100分,答题时间120分钟。
一、选择题:(本大题共10小题,每小题2分,共20分)1. 某内排序方法的稳定性是指( )。
A .该排序算法不允许有相同的关键字记录 B .该排序算法允许有相同的关键字记录 C .平均时间为0(n log n )的排序方法 D .以上都不对2.下面程序段的时间复杂度为( )。
for(i=2;i<=n;++I) for(j=2;j<=i-1;++j) {++x;a[i ,j]=x;}A.O (1)B.O (log 2n )C.O (n )D.O (n 2)3.非空的循环单链表head 的尾结点p 满足( )。
A.p->next=head ;B. p->next=NULL ;C.p =NULL ;D. p->next->next =head ;4.设栈s 和队列Q 的初始状态为空, 元素b 1 ,b 2, ,b 3 , b 4 , b 5 和b 6 依次通过栈S ,一个元素出栈后即进队列Q ,若6个元素出队的序列是b 2 ,b 4 ,b 3 ,b 6 ,b 5 ,b 1 , ,则栈S 的容量至少应该是( )。
题号 一二三四五六七八总分 复核人得分得分 评卷人………………………密……………………封…………………………装…………………订………………………线………………………系别 专业(班级) 姓名 学号A. 3B. 4C. 5D.其它5.表头和表尾均为空表的广义表是()。
A.()B.(())C.((()))D.((),())6.下列二叉排序树中,满足平衡二叉树定义的是()。
A . B.C. D.7.二维数组A的成员是4个字符(每个字符占一个存储单元)组成的串,行下标i的范围从1到8,列下标j的范围从1到10,若A按行优先方式存储,起始地址为SA,那么元素A[8][5]的起始地址为()。
数据结构期末考试试题(含答案)
数据结构期末考试试题(含答案)题目一请写出快速排序算法的递归实现。
解答一public class QuickSort {public void sort(int[] arr, int low, int high) {if (low < high) {int partitionIndex = partition(arr, low, high);sort(arr, low, partitionIndex - 1);sort(arr, partitionIndex + 1, high);}}private int partition(int[] arr, int low, int high) {int pivot = arr[high];int i = low - 1;for (int j = low; j < high; j++) {if (arr[j] <= pivot) {i++;swap(arr, i, j);}}swap(arr, i + 1, high);return i + 1;}private void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}题目二请解释什么是二叉搜索树,并给出一个例子。
解答二二叉搜索树是一种有序的二叉树,其中每个节点的值大于其左子树的所有节点的值,小于其右子树的所有节点的值。
下面是一个二叉搜索树的例子:6/ \3 9/ \ \1 4 12题目三请写出深度优先搜索(DFS)算法的递归实现。
解答三import java.util.*;public class DFS {private int numVertices;private List<List<Integer>> adjList;public DFS(int numVertices) {this.numVertices = numVertices;adjList = new ArrayList<>();for (int i = 0; i < numVertices; i++) {adjList.add(new ArrayList<>());}}public void addEdge(int src, int dest) { adjList.get(src).add(dest);}public void DFSUtil(int start, boolean[] visited) { visited[start] = true;System.out.print(start + " ");List<Integer> neighbors = adjList.get(start);for (int neighbor : neighbors) {if (!visited[neighbor]) {DFSUtil(neighbor, visited);}}}public void DFS(int start) {boolean[] visited = new boolean[numVertices];DFSUtil(start, visited);}}以上是数据结构期末考试试题及其答案。
南邮通达数据结构B期末习题
E
F
J
G
C
H
K
6.18 设S={A,B,C,D,E,F},W={2,3,5,7,9,12},对字符集合 进行哈夫曼编码,W为各字符的频率。 (1)画出哈夫曼树; (2)计算加权路径长度; (3)求各字符的编码。 2 5 3 5 10 7 9 12
2
5
3
5 5
2
3
2
3
5.19 设S={A,B,C,D,E,F},W={2,3,5,7,9,12},对字符集合 进行哈夫曼编码,W为各字符的频率。 (1)画出哈夫曼树; (2)计算加权路径长度; (3)求各字符的编码。 10 22 7 9 12
ht
h1(50)=50%11=6 h2(50)=50%9+1=6 (h1(50)+h2(50))%11=(6+6)%11=1 (h1(50)+2*h2(50))%11=(6+2*6)%11=7 h1(55)=55%11=0
10.1 对图10-23所示的有向图,求:0 1 每个顶点的入度和出度; 2 强连通分量; 3 邻接矩阵。 5 解: 1 各个顶点的 入度和出度如下:
0 0
3 4 4 0 1 2 1
1 1
2 2 3 3 4 4 5 5
0
1
2
5 0
4
3
50 105 Nhomakorabea2
0 5
1
4 广度优先搜索
2
4 深度优先搜索
3
3
9.17 使用普里姆算法以1为源点,画出图9-5所示的 无向图的最小代价生成树。 0
7
1 3 1 2
9
4
5
2
1 6
《数据结构》期末考试试卷(B卷)
广州轻工职业学校(大源校区)试卷用纸 第 1 页,共 1 页
专 班级 姓名 学号
注意:广州轻工职业学校(大源校区)
2015-2016学年第二学期《数据结构》期末考试试卷(B 卷)
注 意 事 项
1、请首先按要求在试卷的标封处填写您的专业、姓名、学号和所在的班级名称;
2、请仔细阅读各种题目的回答要求,在规定的位置填写您的答案;
3、不要在试卷上乱写乱画,不要在标封区填写无关内容。
使用对象:15计算机设计班 考试时间:45分钟 考试方式:考查
一、名词解释题(每小题5分,共35分):
1. 顺序映像
2. 链式映像
3. 数据对象
4. 数据结构
5. 数据类型
6. 抽象数据类型
7. 算法
二、简答题(每小题10分,共30分):
1. 数据元素与数据项有什么关系?
2. ADT 的特性有哪些?
3. 算法的特性有哪些?
三、论述题(共15分):
在设计算法时,什么样的算法才是好的算法?
四、项目设计题(共20分):
农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N 块木头,每块木头长度为整数L 个长度单位。
于是他购买了一条很长的、能锯成N 块的木头,即该木头的长度是L 的总和。
但是农夫自己没有锯子,请人锯木头的酬金跟这段木头的长度成正比。
为简单起见,不妨设酬金等于所锯木头的长度。
例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头将木头锯成12和8,花费20;第二次锯木头将长度为12的木头锯成
7和5花费12,总花费32.如果第一次将木头锯成15和5,则第二次锯木头花费15,总花费35(大于32).
请设计农夫将木头锯成N 块的最少花费。
数据库期末考试题及答案南邮
数据库期末考试题及答案南邮一、选择题(每题2分,共20分)1. 在关系数据库中,关系至少具有以下哪种特性?()A. 可重复性B. 原子性C. 唯一性D. 一致性答案:C2. SQL语言中,用于查询数据的关键字是?()A. SELECTB. INSERTC. UPDATED. DELETE答案:A3. 以下哪个选项是数据库管理系统(DBMS)的主要功能?()A. 编译程序代码B. 管理文件系统C. 提供数据存储和访问D. 执行操作系统命令答案:C4. 在数据库中,用于表示实体之间关系的是?()A. 属性B. 实体C. 关系D. 视图答案:C5. 数据库规范化的目的是为了?()A. 提高查询速度B. 减少数据冗余C. 增加数据安全性D. 简化数据库结构答案:B6. 以下哪个不是数据库设计阶段的任务?()A. 需求分析B. 概念性设计C. 物理设计D. 数据库编程答案:D7. 在数据库中,主键的作用是什么?()A. 唯一标识表中的每条记录B. 存储数据C. 排序数据D. 索引数据答案:A8. 数据库中的事务具有哪些特性?()A. 原子性、一致性、隔离性、持久性B. 原子性、一致性、隔离性、可重复性C. 原子性、一致性、隔离性、并发性D. 原子性、一致性、隔离性、安全性答案:A9. 数据库中的视图是什么?()A. 存储在数据库中的一张表B. 存储在数据库中的一张图片C. 一张虚拟表,由查询结果组成D. 存储在数据库中的一段视频答案:C10. 在SQL中,用于创建数据库的命令是?()A. CREATE TABLEB. CREATE DATABASEC. CREATE INDEXD. CREATE VIEW答案:B二、填空题(每题2分,共20分)1. 数据库系统由数据库、数据库管理系统和________组成。
答案:数据库管理员2. 数据库管理系统的主要功能包括数据定义、数据操纵和________。
答案:数据控制3. 在关系数据库中,一个表中的列称为________。
数据结构期末试卷及参考答案B
《数据结构》试卷(B)学号:姓名:日期:一.选择题(每小题2分,共30分,请写在答卷纸上):1.下面程序的时间复杂为()。
for(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)2.设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A是()。
A.线性结构B.树型结构C.物理结构D.图状结构3.设指针变量p指向单链表中结点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);4.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点5.设某棵二叉树的中序遍历序列为ABCD,先序遍历序列为CABD,则后序遍历该二叉树得到序列为()。
A.BADCB.BCDAC.CDABD.CBDA6.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
《数据结构》期末考试试卷附答案B卷
《数据结构》期末考试试卷附答案B卷一、选择题(共计60分,每题3分,共20题)1.在数据结构中,从逻辑上可以把数据结构分为()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构2.数据结构在计算机内存中的表示是指()。
A.数据的存储结构B.数据结构C.数据的逻辑结构 D.数据元素之间的关系3.在数据结构中,与所使用的计算机无关的是数据的()结构。
A.逻辑B.存储C.逻辑和存储D.物理4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储()。
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.带头结点的双循环链表11.需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是()。
数据结构期末考试试题(含答案)
数据结构期末考试试题(含答案)数据结构期末考试试题(含答案)第一题:多项式相加(20分)将两个多项式 P(x) 和 Q(x) 相加,结果存储在另一个多项式 S(x) 中,请写出相应的算法,并给出其时间复杂度分析。
答案:算法如下:1. 初始化一个空多项式 S(x)。
2. 分别取多项式 P(x) 和 Q(x) 的第一项,判断指数的大小关系,并将指数较小的项加入 S(x)。
3. 若指数相同,则将两项系数相加,并将结果加入 S(x)。
4. 重复步骤2和步骤3,直到两个多项式中的所有项都被处理完。
5. 返回结果多项式 S(x)。
时间复杂度分析:- 假设 P(x) 和 Q(x) 的项数分别为 m 和 n。
- 在最坏情况下,需要比较 m+n 次指数大小,并进行 m+n-1 次系数相加。
- 因此,该算法的时间复杂度为 O(m+n)。
第二题:循环队列设计(30分)请设计一个循环队列,实现入队、出队等基本操作,并给出时间复杂度分析。
答案:定义循环队列的结构体如下:```ctypedef struct {int *data; // 存储队列元素的数组int front; // 队首指针,指向队首元素的位置int rear; // 队尾指针,指向队尾的下一个位置int maxSize; // 队列的最大容量} CircularQueue;```基本操作的实现如下:1. 初始化循环队列:```cvoid initQueue(CircularQueue *queue, int maxSize) {queue->data = (int *)malloc(sizeof(int) * maxSize);queue->front = queue->rear = 0;queue->maxSize = maxSize;}```2. 入队操作:```cint enqueue(CircularQueue *queue, int value) {if ((queue->rear + 1) % queue->maxSize == queue->front) { return 0; // 队列已满,插入失败}queue->data[queue->rear] = value;queue->rear = (queue->rear + 1) % queue->maxSize;return 1; // 插入成功}```3. 出队操作:```cint dequeue(CircularQueue *queue, int *value) {if (queue->front == queue->rear) {return 0; // 队列为空,出队失败}*value = queue->data[queue->front];queue->front = (queue->front + 1) % queue->maxSize; return 1; // 出队成功}```时间复杂度分析:- 入队和出队操作的时间复杂度均为 O(1)。
数据结构B期末考试 A卷及参考答案
一、单项选择题(每小题2分,共30分)1.设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S ,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少是()个。
A.3 B.4 C.5 D.62.银行业务叫号系统采用了()数据结构。
A.栈B.广义表C.图D.队列3.按照二叉树的定义,具有3个结点的不同形状的二叉树有()种。
A.3B.4 C.5 D.64.在数据结构中,从逻辑上可以把数据结构分为()。
A.动态结构和静态结构B.线性结构和非线性结构C.紧凑结构和非紧凑结构D.内部结构和外部结构5.非空的循环单链表head的尾结点(由p所指向)满足()。
A.p->next == NULL B.p == NULLC.p->next == head D.p == head6.栈和队列的共同点是()。
A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点7.一个队列的入队序列是1,2,3,4,则队列的输出序列是()。
A.4,3,2,1B.1,2,3,4C.1,4,3,2D.3,2,4,18.串的长度是指()。
A.串中所含字符的个数B.串中所含不同字母的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数9.具有10个叶子结点的二叉树中有()个度为2的结点。
A.8B.9C.10D.1110.某二叉树结点的中序序列为ABCDEFG,后序序列为BDCAFGE,则其左子树中结点数目为()A.5B.2C.3D.411.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是()A.m-n B.m-n-1 C.n+1 D.m+n12.在一个无向图中,所有顶点的度数之和等于所有边数的()倍。
A.1/2 B.1 C.2D.413.堆是一种有用的数据结构。
下列关键码序列()是一个堆。
大学数据结构期末考试试题(有答案)
大学数据结构期末考试试题(有答案)大学数据结构期末考试试题(有答案)题一:单项选择题(共10题,每题2分,共20分)1. 数据结构是一种()。
A. 算法B. 数据的存储结构C. 编程语言D. 操作系统答案:B2. 下列哪个不属于线性结构?A. 数组B. 栈C. 队列D. 树答案:D3. 栈是()的一种典型应用。
A. 先进先出B. 先进后出C. 后进先出D. 后进后出答案:C4. 链表与数组的主要区别是()。
A. 链表是动态分配的,数组是静态分配的B. 链表只能存储整数,数组可以存储任意类型的数据C. 链表的访问速度比数组快D. 链表的插入和删除操作比数组快答案:A5. 在二分查找算法中,查找元素的平均时间复杂度是()。
A. O(n)B. O(logn)C. O(n^2)D. O(1)答案:B6. 以下哪种排序算法不是稳定的?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:B7. 平衡二叉树的插入和删除操作的时间复杂度都是()。
A. O(n)B. O(logn)C. O(n^2)D. O(1)答案:B8. 哈希表是通过()实现的。
A. 数组B. 链表C. 树D. 图答案:A9. 拓扑排序是一种用来解决()问题的算法。
A. 最短路径B. 最小生成树C. 最大流D. 有向无环图的排序答案:D10. 图的深度优先遍历算法使用()来实现。
A. 栈B. 队列C. 数组D. 链表答案:A题二:填空题(共5题,每题4分,共20分)1. 顺序表中元素的逻辑顺序与物理位置相同,插入和删除操作会引起元素的()。
答案:移动位置2. 在树的孩子兄弟表示法中,每个结点有两个指针,一个指向它的(),一个指向它的()。
答案:第一个孩子,下一个兄弟3. 哈希表的存储时间和查找时间都为()。
答案:O(1)4. 无向连通图的最小生成树边数为()。
答案:n-1(n为结点个数)5. 平衡二叉树的定义是任意结点的左子树和右子树的高度差不超过()。
数据结构试卷B卷(含答案)
数据结构试卷B卷(含答案)-CAL-FENGHAI.-(YICAI)-Company One1《数据结构》试卷B一、填空题(每空1分,共15分)1. 向量、栈和队列都是结构,可以在向量的位置插入和删除元素;对于栈只能在插入和删除元素;对于队列只能在插入和删除元素。
2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为。
不允许插入和删除运算的一端称为。
3. 数据结构是一门研究非数值计算的程序设计问题中计算机的以及它们之间的和运算等的学科。
4. 在顺序表中插入或删除一个元素,需要平均移动元素,具体移动的元素个数与有关。
5. 在具有n个单元的循环队列中,队满时共有个元素。
6. 假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为;比较四次查找成功的结点数为;平均查找长度为。
二、判断正误(判断下列概念的正确性,并作出简要的说明。
)(每小题1分,共10分)()1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
()2. 在表结构中最常用的是线性表,栈和队列不太常用。
()3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
()4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。
()5.线性表的逻辑顺序与存储顺序总是一致的()6. 栈和队列是一种非线性数据结构。
()7. 栈和队列的存储方式既可是顺序方式,也可是链接方式。
()8. 两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
()9. 队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。
()10. 一个栈的输入序列是12345,则栈的输出序列不可能是12345。
三、单项选择题(每小题1分,共20分)()1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:(A)存储结构(B)逻辑结构(C)顺序存储结构(D)链式存储结构()2. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为A.i B.n=i C.n-i+1 D.不确定()3. 判定一个栈ST(最多元素为m0)为空的条件是A.ST->top<>0 B.ST->top=0 C.ST->top<>m0 D.ST->top=m0()4设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分(如下图所示)按行序存放在一维数组B[ 1, n(n-1)/2 ]中,对下三角部分中任一元素a i,j(i≤j), 在一维数组B中下标k的值是:A.i(i-1)/2+j-1 B.i(i-1)/2+j C.i(i+1)/2+j-1 D.i(i+1)/2+j( )5.具有n(n>0)个结点的完全二叉树的深度为 。
南邮通达数据结构B期末试卷及答案
《 数据结构B 》期末试卷(A)本试卷共4页;考试时间110分钟;专业班级 学号姓名 一、填空题(20分,共10题)1. 数据结构主要研究数据的______结构,数据的存储结构以及在数据上执行的运算。
2. 设顺序表长度为100,若下标从0开始计,则删除元素a 10需要移动______个元素.3. 一棵二叉树中,若叶结点的个数为2011,则度为2的结点个数为______。
4. 有向图进行拓扑排序时,没有输出图中所有顶点,说明图中存在______。
5. 线性表采用二分搜索必须满足两个条件:线性表关键字必须是______;存储结构必须采用顺序存储结构。
6. 二叉搜索树的______序遍历序列是一个按关键字递增排列的有序序列.7. 设有一组记录的关键字为{19, 14, 1, 69, 20, 27, 55, 79},散列函数为h (key )=key%11,散列函数值为3的有______个.8. 快速排序算法平均情况下的渐近时间复杂度为O (______)。
9. 采用二次探查法解决冲突可能产生_______聚集。
10. 图常见的两种存储结构有邻接矩阵和_______。
二、选择题(20分,共10题)1. 一个算法必须在执行有穷步之后结束。
这是算法的_______.A. 有穷性B 。
正确性C 。
确定性D. 可行性2. 在指针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; 3. 栈和队列的共同点是_______。
A. 都是先进后出B 。
都是先进先出C. 只允许在端点处插入和删除元素D 。
没有共同点 4. 后缀表达式:5 3 2 * 3 + 3 / +的值为_______.A. 18B. 7C 。
数据结构期末考试试题和标准答案及评分标准
《数据结构》试题(A卷)(考试时间:90分钟)一、单项选择题(本大题共15小题,每小题2分,共30分)(每题只有一个选项是正确的,将答案填写在括号内,错选、多选不得分)1.()是组成数据的基本单位,是一个数据整体中相对独立的单元。
A.数据 B.数据元素 C.数据对象 D.数据结构2.算法计算量的大小称为算法的()。
据的存3.4.5.6.7.8.A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链式存储,不必占用一片连续的存储单元。
D.线性表采用链式存储,便于插入和删除操作。
9.队列操作的原则是()。
A.后进先出B.先进先出C.只能进行插入D.只能进行删除10.栈中允许进行插入和删除的一端称为()。
A.栈首B.栈尾C.栈顶D.栈底11.假设以数组A[n]存放循环队列的元素,其首尾指针分别为front和rear,则当前队列中的元素个数为()。
A.(rear-front+n)%nB.rear-front+1C.(front-rear+n)%nD.(rear-front)%n12.最大容量为n的循环队列,队尾指针是rear,队首指针是front,则队空的判断条件是()。
13.构。
14.15.12在q3.放了2个字符。
4.广义表(a,b,c,d)的表尾是。
5.一棵深度为k的二叉树,最多有个结点。
6.已知有向图G=(V,E),其中:V={v1,v2,v3,v4,v5,v6,v7},E={<v1,v2>,<v1,v3>,<v1,v4>,<v2,v5>,<v3,v5>,<v3,v6>,<v4,v6>,<v5,v7>,<v6,v7>},则G的拓扑序列是______。
7.有n个顶点的连通图至少有条边。
8.1.()23.4()5.6.7.8.9.()10.采用线性探测法解决冲突问题,所产生的一系列后继散列地址必须大于等于原散列址。
《 数据结构B卷 》期末考试试卷附答案
《数据结构B卷》期末考试试卷附答案一、名词解释(每题2分,共10分)1. 数据类型2. 线性表3. 队列4. 串5. 图二、判断正误(正确打√,错误划×,每题1分,共10分)1.算法必须有输入参数。
( )2.链表能够动态分配结点空间。
( )3.栈是一种先进先出的线性表。
( )4.二维数组能够实现随机存取。
( )5.在二叉树的第i层上至多有2i-1个结点(i≥1)。
( )6.在有向图中,<v1,v2>与<v2,v1>是两条不同的边。
( )7.邻接表只能用于有向图的存储。
()8.有向图不能进行广度优先遍历( )9.平均查找长度ASL可作为衡量一个查找算法效率高低的标准。
( )10.所有的内部排序算法都是稳定的。
( )三、填空(每空2分,共10分)1.线性表、栈和队列都是( )结构。
2.栈是一种特殊的线性表,允许插入和删除运算的一端称为()。
3.队列的出队操作总是在( )进行。
4.按存储结构不同,串可分为( )。
5.深度为k 的完全二叉树至少有( )个结点。
四、选择题(单选或多选)(每题2分,共30分)1.算法原则上都是能够由机器或人完成的。
整个算法好像是一个解决问题的“工作序列”,其中的每一步都是我们力所能及的一个动作。
这是算法的( )。
A. 正确性B. 有穷性C. 确定性D. 可行性2.设一棵二叉树中,度为2的结点数为9,则该二叉树的叶结点的数目为( )。
A.10 B. 11 C. 12 D. 不确定3.某二叉树结点的先根序列为E、A、C、B、D、G、F,对中根遍历的序列为A、B、C、D、E、F、G。
该二叉树结点的后根遍历的序列为( )A. [B 、D 、C 、A 、F 、G 、E]B. [B 、D 、C 、F 、A 、G 、E]C. [E 、G 、F 、A 、C 、D 、B]D. [E 、G 、A 、C 、D 、F 、B]4.关于队列的说法正确的是()A. 先进先出B. 属于非线性结构C. 只能采用顺序存储D.属于散列结构5.用单链表表示的链式队列的队尾是在链表的( )位置A. 表尾B. 表头C. 表中D. 任意6.树的非叶子结点是()。
南邮数据结构B期末试卷
数据结构B期末试卷班级学号姓名得分解答题: (共82分)(1) 1.下列程序段或函数的时间复杂度。
(10%)(2) for (int k=0;k<m;k++) (2)int fac(unsigned int n)for (int j=0;j<n;j++) { if (n= =0||n= =1) return 1;a[k][j]=k*j; else return n*fac(n-1);}(3) int Prime(int n) (4)k=1; x=0;{ int k=2 , x=(int)sqrt(n) ; do {while (k<=x) { x++; k*=2;if (n % k= =0) break; }k++; } while (k<n);if (k>x) return 1;else return 0; }2.有A.B.C.D四个元素依次入栈, 即入栈序列唯一, 问共能得到多少种出栈序列?能否得到以下四种出栈序列: ABCD.BDAC.CBDA.DBAC。
对能得到的序列, 请写出Push、Pop序列;对不能得到的序列, 请说明理由。
(6%)3.矩阵Am*n以行优先方式从1000H处开始存放, 元素类型未知, 已知: A[2][3]存放在1011H处, A[1][1]存放在1005H处, 求元素A[2][0]的存放位置。
(6%)4.根据下图所示的树回答问题: (共13%)(1)画出该树等效的二叉树。
(3%)等效的二叉树(2)、写出对该树进行先序、后序遍历的结点序列。
(4%)(3)用带右链的先序表示法来存储此树, 填写下表。
(6%)下标01234567891011siblingelementltag5.假设用于通讯的电文仅由 {ABCDEFGH} 8个字母组成, 字母在电文中出现的频率分别为0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构B期末试卷
班级学号姓名得分
一、解答题:(共82分)
1、下列程序段或函数的时间复杂度。
(10%)
(1)for (int k=0;k<m;k++) (2)int fac(unsigned int n)
for (int j=0;j<n;j++) { if (n= =0||n= =1) return 1;
a[k][j]=k*j; else return n*fac(n-1);} (3)int Prime(int n) (4)k=1; x=0;
{ int k=2 , x=(int)sqrt(n) ; do {
while (k<=x) { x++; k*=2;
if (n % k= =0) break; }
k++; } while (k<n);
if (k>x) return 1;
else return 0; }
2、有A、B、C、D四个元素依次入栈,即入栈序列唯一,问共能得到多少种出栈序列?能否得到以下四种出栈序列:ABCD、BDAC、CBDA、DBAC。
对能得到的序列,请写出Push、Pop序列;对不能得到的序列,请说明理由。
(6%)
3、矩阵A m*n以行优先方式从1000H处开始存放,元素类型未知,已知:A[2][3]存放在1011H处,A[1][1]存放在1005H处,求元素A[2][0]的存放位置。
(6%)
4、根据下图所示的树回答问题:(共13%)
(1)画出该树等效的二叉树。
(3%)
等效的二叉树
(2)、写出对该树进行先序、后序遍历的结点序列。
(4%)
(3)用带右链的先序表示法来存储此树,填写下表。
(6%)
下标0 1 2 3 4 5 6 7 8 9 10 11
sibling
element
ltag
5、假设用于通讯的电文仅由{ABCDEFGH} 8个字母组成,字母在电文中出现的频率分别为0.07, 0.19, 0.02, 0.06, 0.32, 0.03, 0.21, 0.10。
请画出哈夫曼树并在树中标明编码情况,给出这8个字母的哈夫曼编码,最后求出WPL。
(9%)
6、对下图,要求:(共13%)
(1
(2)写出从顶点1到顶点8的四条路径长度为3的简单路径。
(2%)
(3)分别写出从顶点1出发根据(1)所示的邻接表用深度优先搜索和广度优先搜索遍历图得到的顶点序列。
(4%)
(4)求出它的一棵最小代价生成树(方法任选),其代价是多少?你所求出的最小代价生成树是唯一的吗?(4%)
7、一项工程P由P1,P2,P3,P4,P5,P6六个子工程组成,这些工程之间有下列关系:P1>P2, P1>P3, P1>P4, P2>P3, P2>P5, P3>P6, P4>P6, P5>P6。
其中符号“>”表示先于关系,例如P1>P2表示只有在工程P1完成之后才能进行P2的工作。
请:(7%)
(1)画出该工程的AOV网
(2)给出工程P的其中四种可能的施工顺序。
8、按如下关键字序列(60,88,107,15,8,23,100)从空树开始建立一棵AVL搜索树,画出建树的步骤以及调整平衡的过程(6%)
9、设散列表ht[13],散列函数h(key)=key % 13。
采用二次探查法解决冲突,试用关键字值序列:{56,78,14,27,41,70,51,66,24,50,36}建立散列表。
(6%)
i 0 1 2 3 4 5 6 7 8 9 10 11 12
10、元素序列:{55,71,12,98,4,70,51 } ,请写出用冒泡排序法和2路合并排序法进行排序的各趟排序结果。
(6%)
冒泡排序法2路合并排序法
二、算法填空:(8%)
以下算法实现二叉搜索树的删除,根据给定的关键字k,找到待删除元素后将元素值通过参数e返回,若成功删除则返回true;找不到待删除元素则返回false.
template <class E,class K>
________ BSTree<E,K>::Delete (const K &k , E & e)
{
BTNode<E> *p=root,*q=0;
while ( p && p->element!=k )
{
q=p;
if (k<p->element) p=p->lchild;
else ___________________;
}
if (!p)
{
cerr<<”No element with key k\n”;
____________;
}
e=p->element;
while (p->lchild && p->rchild)
{
BTNode<E> *s=p->rchild, *r=p;
while ( s->lchild )
{
_________;
s=s->lchild;
}
_________________ ;
p=s;
q=r;
}
BTNode<E> *c;
if (p->lchild) c=p->lchild;
else ______________ ;
if ( ___________ ) root=c;
else if ( p= =q->lchild ) q->lchild=c;
else q->rchild=c;
_______________;
return true;
}
三、算法设计(10%)
编程实现将两个按元素递增排序的单向循环链表合并成一个单向循环链表,合并后元素仍递增有序,注意:不允许再增加新的结点,相同元素只保留一份。
该算法为SingleList类的成员函数Merge,该函数的作用是将形参r代表的单向循环链表合并到当前单向循环链表中,合并后的结果存于当前单循环链表。
template <class T> class SingleList;
template <class T>
class Node{
private:
T data;
Node<T> *link;
friend class SingleList<T>;
};
template <class T>
class SingleList:public LinearList<T>
{public:
void Merge(const SingleList<T> &r);
………….
private:
Node<T> *first;
…….
};
例:合并前:
r.first->
算法实现:
template <class T>
void SingleList<T>::Merge(const SingleList<T> &r) {。