厦门理工学院12级数据结构期末试卷与答案

合集下载

《数据结构》期末考试试题及答案

《数据结构》期末考试试题及答案

《数据结构》期末考试试题及答案一、单项选择题1. 数据结构是计算机科学的基础学科之一。

下列哪个选项正确描述了数据结构的定义?A. 数据结构是一种计算机程序B. 数据结构是一种存储和组织数据的方法C. 数据结构是一种人工智能技术D. 数据结构是一种操作系统答案:B2. 链表和数组是常见的数据结构,它们之间的主要区别是:A. 数组可以存储不同类型的数据,而链表只能存储相同类型的数据B. 数组的元素在内存中是连续存储的,而链表的元素在内存中是分散存储的C. 链表可以随机访问元素,而数组只能顺序访问元素D. 链表的插入和删除操作更高效,而数组的访问操作更高效答案:B3. 在二叉树中,每个节点最多可以有多少个子节点?A. 1B. 2C. 3D. 无限多个答案:B二、填空题1. 假设有一组数据 [5, 8, 3, 2, 9],按照从小到大的顺序进行冒泡排序的过程中,经过三次交换后的结果是__2__,__3__,__5__,__8__,__9__。

2. 请完成以下代码,实现栈的入栈和出栈操作:```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():return self.stack.pop()def is_empty(self):# 示例代码s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False ```答案:```pythonclass Stack:def __init__(self):self.stack = []def push(self, item):self.stack.append(item)def pop(self):if not self.is_empty():def is_empty(self):return len(self.stack) == 0# 示例代码s = Stack()s.push(1)s.push(2)s.push(3)print(s.pop()) # 输出 3print(s.pop()) # 输出 2print(s.is_empty()) # 输出 False```三、简答题1. 请简要介绍树的基本概念及常见的树结构。

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

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

数据结构期末考试试题及答案一、选择题1. 以下哪种数据结构是线性存储结构?A. 树B. 图C. 栈D. 队列答案:C2. 在链表中,如果一个节点既没有前驱也没有后继,那么这个节点被称作什么?A. 首节点B. 尾节点C. 中间节点D. 孤立节点答案:B3. 树的度是指什么?A. 树中节点的个数B. 树中最大的层次数C. 树的分支数D. 树的节点的度的最大值答案:C4. 在二叉搜索树中,若要查找给定值的节点,当查找失败时应返回的值是?A. -1B. 0C. 1D. 该值本身答案:A5. 快速排序算法的时间复杂度最坏情况下是多少?A. O(n)B. O(nlogn)C. O(n^2)D. O(n!)答案:C二、填空题1. 在顺序表中,元素的物理位置相邻的特点是________,这使得顺序表在________操作上具有较高的效率。

答案:连续性;访问2. 链表相比顺序表的优势在于它能够动态地________存储空间,并且________操作不需要移动大量元素。

答案:分配和释放;插入与删除3. 栈是一种________的数据结构,只允许在________进行插入和删除操作。

答案:后进先出;栈顶4. 图的遍历算法主要有两种,分别是________和________。

答案:深度优先搜索;广度优先搜索5. 哈夫曼树是一种特殊的二叉树,它常用于数据压缩,其构建过程是基于________原则。

答案:最小权值三、简答题1. 请简述数组和链表的优缺点。

答案:数组通过索引直接访问元素,访问速度快,但大小固定,插入和删除操作需要移动大量元素。

链表元素通过指针连接,可以动态分配大小,插入和删除效率高,但访问速度较慢,因为需要从头开始遍历。

2. 什么是二叉树的前序遍历、中序遍历和后序遍历?答案:二叉树的前序遍历是先访问根节点,然后遍历左子树,最后遍历右子树。

中序遍历是先遍历左子树,然后访问根节点,最后遍历右子树。

后序遍历是先遍历左子树,然后遍历右子树,最后访问根节点。

2020-2021学年《数据结构》期末考试试题及答案

2020-2021学年《数据结构》期末考试试题及答案

2020-2021学年《数据结构》期末考试复习试题一、单项选择题1.对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为()。

(A)、正确性(B). 可行性(C). 健壮性(D). 输入性2.设S为C语言的语句,计算机执行下面算法时,算法的时间复杂度为()。

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)、有序顺序表(B)、有序单链表(C)、有序顺序表和有序单链表都可以(D)、无限制4.顺序存储结构的优势是()。

(A)、利于插入操作(B)、利于删除操作(C)、利于顺序访问(D)、利于随机访问5.深度为k的完全二叉树,其叶子结点必在第()层上。

(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)、先序(B)、中序(C)、后序(D)、层序8.在下列链队列Q中,元素a出队的操作序列为()(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等于()(A)、除根结点之外的所有结点权值之和(B)、所有结点权值之和(C)、各叶子结点的带权路径长度之和(D)、根结点的值10.线索二叉链表是利用()域存储后继结点的地址。

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

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

数据结构期末考试试题及答案一、选择题1. 评价一个算法时间性能的主要标准是( )。

A、算法易于调试B、算法易于理解C、算法的稳定性和正确性D、算法的时间复杂度2. 计算机算法具备有输入、输出、()等五个特性。

A、可行性、可移植性和可扩充性B、可行性、确定性和有穷性C、确定性、有穷性和稳定性D、易读性、稳定性和安全性3. 带头结点的单链表head为空的判定条件是()。

A、head==NULLB、head->next==NULLC、head->next==headD、head!=NULL4. 以下关于线性表的说法不正确的是( )。

A、线性表中的数据元素可以是数字、字符、记录等不同类型。

B、线性表中包含的数据元素个数不是任意的。

C、线性表中的每个结点都有且只有一个直接前趋和直接后继。

D、存在这样的线性表:表中各结点都没有直接前趋和直接后继。

5. 在顺序表中,只要知道( ),就可在相同时间内求出任一结点的存储地址。

A、基地址B、结点大小C、向量大小D、基地址和结点大小6. ( )运算中,使用顺序表比链表好。

A、插入B、删除C、根据序号查找D、根据元素值查找7. 一个长度为n的顺序表中,向第i个元素之前插入一个新元素时,需要向后移动()个元素A、n-iB、n-i+1C、n-i-1D、i8. ( )适合作为经常在首尾两端操作线性表的存储结构。

A、顺序表B、单链表C、循环链表D、双向链表9. 栈和队列的共同点是()A、都是先进后出B、都是先进先出C、只允许在端点处插入和删除元素D、没有共同点10. 一个队列的入列序列是1 2 3 4,则队列的输出序列是( )。

A、4 3 2 1B、1 2 3 4C、1 4 3 2D、3 2 4 111. 队列与一般的线性表的区别在于( )。

A、数据元素的类型不同B、运算是否受限制C、数据元素的个数不同D、逻辑结构不同12. “假上溢”现象会出现在( )中。

A、循环队列B、队列C、链队列D、顺序队列二、填空题1.数据的逻辑结构被分为集合、线性结构、树形结构和图结构。

数据结构期末考卷12-13级

数据结构期末考卷12-13级

得分
1. 设有一个单循环链表p如下图所示, ① 请画出执行p->next=p->next->next语句后的新链表
图; ② 若现有一个新结点q,如下图所示,则请在①基础上画出接着执行q>next=p->next; p->next=q; p=q; 语句序列后的新链表图。 p q data next z y x d
Hale Waihona Puke 得分1. 下列算法是输出邻接矩阵存储结构的有向图G各顶点的入度和出度, 请在空白处填入适当的语句,使该算法完整。 typedef int adjmatrix[MaxVertexNum] [MaxVertexNum]; void Graph( adjmatrix G, int n) { //G是n个顶点的邻接矩阵存储结构的有向图 int i, j, k, d; for(i = 0 ; i < n; i++) { d = 0; for(j=0; j < n; j++) if( ① ) d++; cout<<”顶点i的出度是”<<d<<”,”; d= ② ; for(k=0; k < n; k++)
if( ③ ) d++; cout<<”顶点i的入度是”<<d<<endl; } } 2. 一个双端队列是限定在两端end1和end2都可以进行插入和删除的 线性表。若用顺序方式来组织双端队列(构成一个循环队列),示意图 如下图所示,Q.end1指向一端的头元素的前一个位置,Q.end2指向 另一端的头元素位置,队列空条件为:Q.end1==Q.end2;队列满条 件为: (Q.end2+1)%MAXSIZE==Q.end1(此时有一个元素空间 为空)。初始状态时,Q.end1=Q.end2=0。入队列时,end1按照逆 时针方向进行,end2按照顺时针方向进行;出队列时方向相反。下列 算法是在指定端K(K为1或2)进行双端队列的插入操作,当k==1 时,在左端Q.end1操作;k==2时,在右端Q.end2操作,请在空白处 填入适当的语句,使该算法完整。 0 1 MAXSIZE-1 …. 8 5 6 …. end1 end2

《数据结构》期末考试题及答案

《数据结构》期末考试题及答案

2011-2012学年第一学期期末考查《数据结构》试卷(答案一律写在答题纸上,在本试卷上做答无效)一、选择(每题1分,共10分)1.长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法时间复杂度为()A.O(0)B.O(1)C.O(n)D.O(n2)2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?()A.543612B.453126C.346512D.2341563.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为()A.8B.9C.10D.114.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是()A. m-nB.m-n-1C.n+1D.m+n5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A.9B.11C.15D.不确定6.下列哪一个方法可以判断出一个有向图是否有环。

()A.深度优先遍历B.拓扑排序C.求最短路径D.求关键路径7.第7层有10个叶子结点的完全二叉树不可能有()个结点。

A.73B.234C.235D.2368.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是()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)9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是()A.选择排序B.起泡排序C.快速排序D.插入排序10.对线性表进行折半查找时,要求线性表必须()A.以顺序方式存储B.以顺序方式存储,且数据元素有序C.以链接方式存储D.以链接方式存储,且数据元素有序二、填空(每空1分,共15分)1.数据结构中评价算法的两个重要指标是、空间复杂度。

厦门理工学院12级数据结构期末试卷与答案

厦门理工学院12级数据结构期末试卷与答案

线 订 装数据结构与算法A卷答案12-13学年第一学期一、选择题:(本题共20小题,每题2分,共40分)1-5:AABDC 6-10:DDDBC 11-15:CBCDD 16-20:ABCAB二、分析运算题(本题共6小题,每题5分,共30 分)(1) 如果输入序列为1 2 3,先进入栈结构后进入队列结构,试写出所有的出队列序列。

输出序列1 2 3(1分)输出序列1 3 2(1分)输出序列2 1 3(1分)输出序列2 3 1(1分)输出序列3 2 1(1分)输出序列3 1 2(扣3分)(2) 假设一棵二叉树的前序(先序)遍历序列为ABDECF和中序序列为DBEAFC,画出二叉树并写出后序遍历序列。

①(3分)②后序遍历:DEBFCA (2分)(3) 用二叉树表示算术表达式如图1所示。

①按图画出对应的算术表达式②写出后序(后缀)表达式算术表达式:(a+b+c*(d+e)+f)*(g+h) (2分)后序表达式:ab+cde+*+f+gh+*(3分)(4) 请写出有向图2中顶点1-6的入度和出度1: 入度:3出度:02: 入度:2出度:23: 入度:1出度:24: 入度:1出度:35: 入度:2出度:16: 入度:2出度:3(入度2.5分,出度2.5分)(5) 给定一组项及其权值,假定项都存放于二叉树的树叶结点,则具有最小带权外部路径长度的树称为huffman(赫夫曼) 树。

给定项及相应的权如下表:画出相应的huffman树。

(5分)(6)已经邻接矩阵如图3所示,判断该图是有向图还是无向图,用顶点1-6画出该图。

有向图(2分)三、程序填空题(本题共5空,每空2分,共10分)(1):p!=NULL(2):p = p->next;(3): Q.front= =Q.rear(4): Q.front->next=p->next;(5): Q.rear=Qfront;四、算法设计题(本题共2小题,共20分)1、(10分)算法如下:void move(sqlist L){int i=0,j=L.lenght-1,k; 1分int temp;while(i<j) 1分{while(L.elem[i]<=0) i++; 2分while(L.elem[j]>=0) j--; 2分if(i<j) 1分{temp=L.elem[i];L.elem[i]=L.elem[j];L.elem[j]=temp; 3分}}}注:算法执行次数(时间)比给定算法更多,不得超过6分。

最新数据结构复习题及答案(12级)

最新数据结构复习题及答案(12级)

一、选择题。

(每小题2分,共40分)(1) 计算机识别.存储和加工处理的对象被统称为____A____。

A.数据B.数据元素C.数据结构D.数据类型(2) 数据结构通常是研究数据的____ A _____及它们之间的联系。

A.存储和逻辑结构B.存储和抽象C.理想和抽象D.理想与逻辑(3) 不是数据的逻辑结构是____ A ______。

A.散列结构B.线性结构C.树结构D.图结构(4) 数据结构被形式地定义为<D,R>,其中D是____ B _____的有限集,R是____ C _____的有限集。

A.算法B.数据元素C.数据操作D.逻辑结构(5) 组成数据的基本单位是____ A ______。

A.数据项B.数据类型C.数据元素D.数据变量(6) 设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是____ A ______。

A.线性结构B.树型结构C.图型结构D.集合(7) 数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为___ C ____。

A.存储结构B.逻辑结构C.顺序存储结构D.链式存储结构(8) 在数据结构的讨论中把数据结构从逻辑上分为___ A ____。

A.内部结构与外部结构B.静态结构与动态结构C.线性结构与非线性结构D.紧凑结构与非紧凑结构(9) 对一个算法的评价,不包括如下____ B _____方面的内容。

A.健壮性和可读性B.并行性C.正确性D.时空复杂度(10) 算法分析的两个方面是__ A ____。

A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性(11) 线性表是具有n个___ C _____的有限序列(n≠0)。

A.表元素B.字符C.数据元素D.数据项(12) 线性表的存储结构是一种____ B ____的存储结构。

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

线 订 装
数据结构与算法A卷答案
12-13学年第一学期
一、选择题:(本题共20小题,每题2分,共40分)
1-5:AABDC 6-10:DDDBC 11-15:CBCDD 16-20:ABCAB
二、分析运算题(本题共6小题,每题5分,共30 分)
(1) 如果输入序列为1 2 3,先进入栈结构后进入队列结构,试写出所有的出队列序列。

输出序列1 2 3(1分)
输出序列1 3 2(1分)
输出序列2 1 3(1分)
输出序列2 3 1(1分)
输出序列3 2 1(1分)
输出序列3 1 2(扣3分)
(2) 假设一棵二叉树的前序(先序)遍历序列为ABDECF和中序序列为DBEAFC,画出二叉树并写出后序遍历序列。

①(3分)
②后序遍历:DEBFCA (2分)
(3) 用二叉树表示算术表达式如图1所示。

①按图画出对应的算术表达式②写出后序(后缀)表达式
算术表达式:(a+b+c*(d+e)+f)*(g+h) (2分)
后序表达式:ab+cde+*+f+gh+*(3分)
(4) 请写出有向图2中顶点1-6的入度和出度
1: 入度:3出度:0
2: 入度:2出度:2
3: 入度:1出度:2
4: 入度:1出度:3
5: 入度:2出度:1
6: 入度:2出度:3
(入度2.5分,出度2.5分)
(5) 给定一组项及其权值,假定项都存放于二叉树的树叶结点,则具有最小带权外部路径长度的树称为huffman(赫夫曼) 树。

给定项及相应的权如下表:画出相应的huffman树。

(5分)
(6)已经邻接矩阵如图3所示,判断该图是有向图还是无向图,用顶点1-6画出该图。

有向图(2分)
三、程序填空题(本题共5空,每空2分,共10分)
(1):p!=NULL
(2):p = p->next;
(3): Q.front= =Q.rear
(4): Q.front->next=p->next;
(5): Q.rear=Qfront;
四、算法设计题(本题共2小题,共20分)
1、(10分)算法如下:
void move(sqlist L)
{
int i=0,j=L.lenght-1,k; 1分
int temp;
while(i<j) 1分
{
while(L.elem[i]<=0) i++; 2分
while(L.elem[j]>=0) j--; 2分
if(i<j) 1分
{
temp=L.elem[i];
L.elem[i]=L.elem[j];
L.elem[j]=temp; 3分
}
}
}
注:算法执行次数(时间)比给定算法更多,不得超过6分。

2、算法如下:
int leaf(BiTree T) 1分{
if(T==NULL) 1分
return 0; 2分
else if(T->lchild==NULL && T->rchild==NULL) 2分 return 1; 2分 else return(leaf(T->lchild)+leaf(T->rchild)); 2分}。

相关文档
最新文档