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

《数据结构》期末考试试题及答案一、单项选择题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. 请简要介绍树的基本概念及常见的树结构。
数据结构期末考试题及答案

数据结构期末考试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,算法的时间复杂度是指()。
A. 执行算法所需要的计算工作量B. 执行算法所需要的存储空间C. 执行算法所需要的时间D. 执行算法所需要的内存大小答案:A2. 线性表的顺序存储结构和链式存储结构相比,其优点是()。
A. 插入和删除操作快B. 存储密度高C. 存储空间可以动态分配D. 存储空间利用率高答案:B3. 栈的基本运算中,不包括()。
A. 入栈B. 出栈C. 取栈顶元素D. 排序答案:D4. 在二叉树的遍历中,先序遍历的顺序是()。
A. 先根后子B. 先子后根C. 先左后右D. 先右后左答案:A5. 哈希表解决冲突的方法不包括()。
A. 分离链接法B. 线性探测法C. 链地址法D. 二分查找法答案:D6. 一个图的邻接矩阵表示法中,若第i行第j列的元素为1,则表示()。
A. 顶点i和顶点j之间有一条边B. 顶点i和顶点j之间没有边C. 顶点i和顶点j之间有n条边D. 顶点i和顶点j之间有m条边答案:A7. 在查找算法中,二分查找法适用于()。
A. 线性表B. 哈希表C. 树形结构D. 图结构答案:A8. 快速排序算法的时间复杂度在最坏情况下是()。
A. O(n)B. O(nlogn)C. O(n^2)D. O(2^n)答案:C9. 一个有n个顶点的无向图,其边数最多为()。
A. nB. n(n-1)/2C. n(n+1)/2D. 2n答案:B10. 以下哪个不是排序算法()。
A. 冒泡排序B. 选择排序C. 插入排序D. 归并排序答案:D二、填空题(每题2分,共20分)1. 在数据结构中,一个算法的空间复杂度是指算法执行过程中所需要的___________。
答案:存储空间2. 线性表的链式存储结构中,每个节点包含___________和___________。
答案:数据元素,指针3. 栈的特点是___________,___________。
数据结构期末考试试题及答案

数据结构期末考试试题及答案一、选择题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. 什么是二叉树的前序遍历、中序遍历和后序遍历?答案:二叉树的前序遍历是先访问根节点,然后遍历左子树,最后遍历右子树。
中序遍历是先遍历左子树,然后访问根节点,最后遍历右子树。
后序遍历是先遍历左子树,然后遍历右子树,最后访问根节点。
数据结构期末考试及答案

一、单选题1、逻辑上通常可以将数据结构分为( )A.初等结构和组合结构B.顺序结构和链式结构C.线性结构和非线性结构D.动态结构和静态结构正确答案:C2、如果在数据结构中每个数据元素只可能有一个直接前驱,但可以有多个直接后继,则该结构是()。
A.栈B. 队列C.图D.树正确答案:D3、在长度为n的顺序表的第i个位置上插入一个元素(1<=i<=n+1),元素的移动次数为:()A.n-iB.i-1C.n-i+1D.i正确答案:C4、在非空线性链表中由p所指结点的后面插入一个由q所指的结点,应依次执行()A.q->next=p;p->next=q;B.p->next=q;q->next=p;C.q->next=p->next;p->next=q;D.q->next=p->next;p=q;正确答案:C5、已知栈的最大容量为4。
若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为()A.2,3,5,6,1,4B.1,4,6,5,2,3C.5,4,3,2,1,6D.3,2,5,4,1,6正确答案:D6、设栈S和队列Q初始均为空,若6个元素入栈的顺序为1、2、3、4、5、6,一个元素出栈以后立即入队列Q,若6个元素出队的顺序为2、4、3、6、5、1,则栈S的容量至少为()A.3B.5C.4D.2正确答案:A7、在计算机内实现递归算法时所需的辅助数据结构是()A.队列B.栈C.图D.树正确答案:B8、循环队列存储在数组A[0..m-1],则出队时的操作为()A.front=(front mod m)+1B.ront=(front+1)mod mC.front=front+1D.front=(front+1)mod (m-1)正确答案:B9、若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作系列合法的是()A.SXXSXSSXB.SSSXXSXXC.SXSSXXXXD.SXSXXSSX正确答案:B10、在具有m个单元的循环队列中,队头指针为front,队尾指针为rear,则队满的条件是()A.(front+1)%m==rearB.(rear+1)%m==frontC.front==rearD.rear+1==front正确答案:B11、在表长为n的顺序表上做插入运算,平均要移动的结点数为()A.n/4B.nC.n/3D.n/2正确答案:D12、元素的进栈次序为A,B,C,D,E,则退栈中不可能的序列是()A.E,D,C,B,AB.A,B,C,D,EC.E,A,B,C,DD.B,C,D,E,A正确答案:C13、下述二叉树中,()满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序。
《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案一、选择题(每题5分,共20分)1. 下列哪个不是线性结构?A. 栈B. 队列C. 图D. 数组2. 下列哪个不是栈的基本操作?A. 入栈B. 出栈C. 查找D. 判断栈空3. 下列哪个不是队列的基本操作?A. 入队B. 出队C. 查找D. 判断队列空4. 下列哪个不是图的基本概念?A. 顶点B. 边C. 路径D. 环二、填空题(每题5分,共20分)5. 栈是一种______结构的线性表,队列是一种______结构的线性表。
6. 图的顶点集记为V(G),边集记为E(G),则无向图G=(V(G),E(G)),有向图G=(______,______)。
7. 树的根结点的度为______,度为0的结点称为______。
8. 在二叉树中,一个结点的左子结点是指______的结点,右子结点是指______的结点。
三、简答题(每题10分,共30分)9. 简述线性表、栈、队列、图、树、二叉树的基本概念。
10. 简述二叉树的遍历方法。
11. 简述图的存储结构及其特点。
四、算法题(每题15分,共30分)12. 编写一个算法,实现栈的入栈操作。
13. 编写一个算法,实现队列的出队操作。
五、综合题(每题20分,共40分)14. 已知一个无向图G=(V,E),其中V={1,2,3,4,5},E={<1,2>,<1,3>,<2,4>,<3,4>,<4,5>},画出图G,并给出图G的邻接矩阵。
15. 已知一个二叉树,其前序遍历序列为ABDCE,中序遍历序列为DBACE,请画出该二叉树,并给出其后序遍历序列。
答案部分一、选择题答案1. C2. C3. C4. D二、填空题答案5. 后进先出先进先出6. V(G),E(G)7. 0 叶结点8. 左孩子右孩子三、简答题答案9. (1)线性表:一个线性结构,其特点是数据元素之间存在一对一的线性关系。
数据结构 本-国家开放大学中央电大2017年秋季学期“本科”期未考试试卷及答案

c.插入元素的操作不需要移动元素
720
D. 删除元素的操作需要移动元素
5. 图状结构中数据元素的位置之间存在(
)的关系。
A. 一对一
B. 多对多
C. 一对多
D. 每一个元素都有一个直接前驱和一个直接后继
6. 元素 15 , 9 , 11 , 13 按顺序依次进找,则该校的不可能输出序列是( 交替进行)。
typedef struct int key;
}NODE;
int Binary_Search(NODE a[ ], int n , int k)
int low , mid , high; low=O; high=n-1 ; while( (1)
m 山
d〕 a( h「 ι一
?、
",
-
L
U 且
E
VJ
一 一
最小元素〉的方法建立的初始堆(要求以完全二叉树描述)。 (2) 对关键字序列 (26 , 59 , 36 , 18 , 20 , 64) 采用快速排序,给出以第一个关键字为分割元
素,经过一次划分后的结果。
|得分|评卷人|
|I I
四、程序填空题(每空 2 分,共 16 分}
25. 以下函数在 a[O] 到 a[n-1] 中,用折半查找算法查找关键宇等于 k 的记录,查找成功 返回该记录的下标,失败时返回一1,完成程序中的空格
void lnorder (struct BTreeNode 铃 BT)
if( BT! = NULL) {
(1) (2)
Inorder(BT 一一 >right); } 利用上述程序对图 2 进行先序遍历,结果是 (3)
o
图2
大学数据结构期末考试试题(有答案)

“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HLB. p一>next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一>next=HL一>next;HL一>next=p;2.n个顶点的强连通图中至少含有( )。
A.n—l条有向边B.n条有向边C.n(n—1)/2条有向边D.n(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1)B.O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.整形B.引用型C.指针型D.常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。
A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为——、——、——和——四种。
2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为——域和——域。
3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。
4.在一棵高度为h的3叉树中,最多含有——结点。
5.假定一棵二叉树的结点数为18,则它的最小深度为——,最大深度为——·6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定——该结点的值,右子树上所有结点的值一定——该结点的值。
7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层——调整,直到被调整到——位置为止。
数据结构期末试题及答案

《数据结构》期末考试试卷一、选择题(单选题,每小题3分,共33分)1.已知某二叉树的中序、层序序列分别为DBAFCE、FDEBCA,则该二叉树的后序序列为 B 。
A.BCDEAF B.ABDCEF C.DBACEF D.DABECF 2.在11个元素的有序表A[1…11]中进行折半查找(⎣⎦2/)low+),查找元素(highA[11]时,被比较的元素的下标依次是 B 。
A.6,8,10,11 B.6,9,10,11 C.6,7,9,11 D.6,8,9,113.由元素序列(27,16,75,38,51)构造平衡二叉树,则首次出现的最小不平衡子树的根(即离插入结点最近且平衡因子的绝对值为2的结点)为 D 。
A.27 B.38 C.51 D.754.利用逐点插入法建立序列(50,72,43,85,75,20,35,45,65,30)对应的二叉排序树以后,查找元素30要进行 B 次元素间的比较。
A.4 B.5 C.6 D.75.循环链表的主要优点是 D 。
A.不再需要头指针了B.已知某个结点的位置后,很容易找到它的直接前驱结点C.在进行删除后,能保证链表不断开D.从表中任一结点出发都能遍历整个链表6.已知一个线性表(38,25,74,63,52,48),假定采用散列函数h(key)=key%7计算散列地址,并散列存储在散列表A[0…6]中,若采用线性探测方法解决冲突,则在该散列表上进行等概率查找时查找成功的平均查找长度为 C 。
A.1.5 B.1.7 C.2.0 D.2.37.由权值为9,2,5,7的四个叶子结点构造一棵哈夫曼树,该树的带权路径长度为C 。
A.23 B.37 C.44 D.468.在最好和最坏情况下的时间复杂度均为O(nlogn)且稳定的排序方法是 D 。
A.基数排序B.快速排序C.堆排序D.归并排序9.无向图G=(V,E),其中V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(L&&L->next){
q=L;L=L->next;p=L;
S1:
while(p->next) p=p->next;
S2:
p->next=q;q->next=NULL;
} return L; } 请回答下列问题:
(1)说明语句 S1 的功能;
(2)说明语句组 S2 的功能; (3)设链表表示的线性表为(a1,a2, …,an),写出算法执行后的返回值所表 示的线性表。
3、在下面的数组 a 中链接存储着一个线性表,表头指针为 a[o].next,则该
线性表为_________________________________________________。
注(10)表示用 10 进制表示。
A.688
B.678
C.692
D.696
5. 树最适合用来表示(
)。
A.有序数据元素
B.无序数据元素
C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据
6. 二叉树的第 k 层的结点数最多为( ).
A.2k-1
B.2K+1
C.2K-1 D. 2k-1
7. 若有 18 个元素的有序表存放在一维数组 A[19]中,第一个元素放 A[1]
中,现进行二分查找,则查找 A[3]的比较序列的下标依次为(
)
A. 1,2,3
B. 9,5,2,3
C. 9,5,3
D. 9,4,2,3
8. 对 n 个记录的文件进行快速排序,所需要的辅助存储空间大致为
A. O(1) B. O(n) C. O(1og2n)
D. O(n2)
9. 对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若
二、
填空题(每空 1 分,共 26 分)
1. 正确性 易读性 强壮性 高效率
2. O(n)
3. 9 3 3
4. -1
34X*+2Y*3/-
5. 2n n-1 n+1
6. e 2e
7. 有向无回路
8. n(n-1)/2 n(n-1)
9. (12,40) ( ) (74) (23,55,63)
10. 增加 1
一、 单选题(每小题 2 分,共 8 分)
1、在一个长度为 n 的顺序线性表中顺序查找值为 x 的元素时,查找成功时的平
均查找长度(即 x 与元素的平均比较次数,假定查找每个元素的概率都相等)
为 ( )。
An
B n/2
C (n+1)/2
D (n-1)/2
2、在一个单链表中,若 q 所指结点是 p 所指结点的前驱结点,若在 q 与 p 之间插
C. 仅修改尾指针
D.头、尾指针可能都要修改
3. 以下数据结构中哪一个是非线性结构?( )
A. 队列 B. 栈
C. 线性表 D. 二叉树
4. 设有一个二维数组 A[m][n],假设 A[0][0]存放位置在 644(10),A[2][2]存
放位置在 676(10),每个元素占一个空间,问 A[3][3](10)存放在什么位置?脚
用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。
第 4 页 共 23 页
4. 画出向小根堆中加入数据 4, 2, 5, 8, 3 时,每加入一个数据后堆的变化。
四、
阅读算法(每题 7 分,共 14 分)
1. LinkList mynote(LinkList L)
{//L 是不带头结点的单链表的头指针
2017《数据结构》期末考试试题及答案
《数据结构》期末考试试题及答案 1 ........................................................................2 试题 1 答案 ....................................................................................................................7 《数据结构》期末考试试题及答案 2 ........................................................................9 试题 2 答案 ..................................................................................................................14 《数据结构》期末考试试题及答案 3 ......................................................................16 试题 3 答案 ..................................................................................................................21
4. 后缀算式 9 2 3 +- 10 2 / -的值为__________。中缀算式(3+4X)-2Y/3 对应
的后缀算式为_______________________________。
5. 若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右
孩子的两个指针。在这种存储结构中,n 个结点的二叉树共有________个指针
n 个顶点的有向完全图中,包含有________条边。
9. 假定一个线性表为(12,23,74,55,63,40),若按 Key % 4 条件进行划分,使得
同一余数的元素成为一个子表,则得到的四个子表分别为
____________________________、___________________、__________________
邻接表如图 11 所示:
图 11
第 7 页 共 23 页
3. 用克鲁斯卡尔算法得到的最小生成树为: (1,2)3, (4,6)4, (1,3)5, (1,4)8, (2,5)10, (4,7)20
4. 见图 12
4
4
2
2
2
2
4
4
2
5
4
5
8
3
5
84
2
4
5
83
图 12
四、
阅读算法(每题 7 分,共 14 分)
2. void ABC(BTNode * BT) { if BT { ABC (BT->left); ABC (BT->right); cout<<BT->data<<' '; } } 该算法的功能是:
第 5 页 共 23 页
五、
算法填空(共 8 分)
二叉搜索树的查找——递归算法:
bool Find(BTreeNode* BST,ElemType& item) { if (BST==NULL) return false; //查找失败
选用 H(K)=K %9 作为散列函数,则散列地址为 1 的元素有( )个,
第 2 页 共 23 页
A.1
B.2
C.3
10. 设有 6 个结点的无向图,该图至少应有(
通图。
A.5
B.6
C.7
D.8
D.4 )条边才能确保是一个连
二、
填空题(每空 1 分,共 26 分)
1. 通常从四个方面评价算法的质量:_________、_________、_________和
入一个 s 所指的结点,则执行( )。
A s→link=p→link; p→link=s;
B p→link=s; s→link=q;
C p→link=s→link; s→link=p;
D q →link=s; s→link =p;
3、 栈的插入和删除操作在( )进行。
A 栈顶
B 栈底
C 任意位置 D 指定位置
域,其中有________个指针域是存放了地址,有________________个指针是空
指针。
6. 对于一个具有 n 个顶点和 e 条边的有向图和无向图,在其对应的邻接表中,
所含边结点分别有_______个和________个。
7. AOV 网是一种___________________的图。
8. 在一个具有 n 个顶点的无向完全图中,包含有________条边,在一个具有
4、 由权值分别为 11,8,6,2,5 的叶子结点生成一棵哈夫曼树,它的带权
路径长度为( )
A 24
B 71
C 48
D 53
二、 填空题(每空 1 分,共 32 分)
1、数据的逻辑结构被分为__________、 ___________ 、________和
________四种。
2、一种抽象数据类型包括______________和_____________两个部分。
_________。
2. 一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。 3. 假定一棵树的广义表表示为 A(C,D(E,F,G),H(I,J)),则树中所
含的结点数为__________个,树的深度为___________,树的度为_________。
三、
运算题(每题 6 分,共 24 分)
1. 在如下数组 A 中链接存储了一个线性表,表头指针为 A [0].next,试写出该 线性表。 A 0 12 3 4 5 67
data