数据结构与算法复习题及参考答案课案.docx
《数据结构与算法复习题及参考答案课案.docx》由会员分享,可在线阅读,更多相关《数据结构与算法复习题及参考答案课案.docx(24页珍藏版)》请在冰豆网上搜索。
数据结构与算法复习题及参考答案课案
复习题集一参考答案
一判断题
(V)1.在决定选取何种存储结构时,一般不考虑各结点的值如何。
(V)2.抽象数据类型与计算机内部表示和实现无关。
(X)3.线性表采用链式存储结构时,结点和结点内部的存储空间可以是不连续的。
(X)4.链表的每个结点中都恰好包含一个指针。
(X)5•链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
(X)6.线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
(X)7•顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
(X)8.线性表在物理存储空间中也一定是连续的。
(X)9•顺序存储方式只能用于存储线性结构。
(V)10•栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
(V)11.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。
(V)12•栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
(V)13.两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
(X)14二叉树的度为2。
(V)15.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。
(X)16.二叉树中每个结点的两棵子树的高度差等于1。
(V)17.用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。
(V)18具有12个结点的完全二叉树有5个度为2的结点。
(V)19.二叉树的前序遍历序列中,任意一个结点均处在其孩子结点的前面。
(X)20.在冒泡法排序中,关键值较小的兀素总是向前移动,关键值较大的兀素总是向后移动。
(X)21.计算机处理的对象可以分为数据和非数据两大类。
[计算机处理的对象都是数据]
(X)22.数据的逻辑结构与各数据元素在计算机中如何存储有关。
(X)23.算法必须用程序语言来书写。
(X)24.判断某个算法是否容易阅读是算法分析的任务之一。
(X)25.顺序表是一种有序的线性表。
[任何数据结构才用顺序存储都叫顺序表]
(V)26.分配给顺序表的内存单元地址必须是连续的。
(V)27.栈和队列具有相同的逻辑特性。
[它们的逻辑结构都是线性表]
(V)28.树形结构中每个结点至多有一个前驱。
(X)29.在树形结构中,处于同一层上的各结点之间都存在兄弟关系。
(X)30.如果表示图的邻接矩阵是对称矩阵,则该图一定是无向图。
(X)31.如果表示图的邻接矩阵是对称矩阵,则该图一定是有向图。
(X)32.顺序查找方法只能在顺序存储结构上进行。
(X)33.折半查找可以在有序的双向链表上进行。
(V)
34.满二叉树中不存在度为1的结点。
(X)
35•完全二叉树中的每个结点或者没有孩子或者有两个孩子。
(V)
(V)
36•对n个元素执行快速排序,在进行第一次分组时,排序码的比较次数总是
37•在有向图中,各顶点的入度之和等于各顶点的出度之和。
n-1次。
(A)
A)
B)
(C)
A)
C)
(A)
A)
C)
(C)
A)
(B)
A)
C)
(B)
选择题
1.在n个结点的顺序表中,算法的时间复杂度是0
(1)的操作是:
访问第i个结点(1wiwn)和求第i个结点的直接前驱(2wiwn)在第i个结点后插入一个新结点
2.算法分析的目的是:
找出数据结构的合理性分析算法的效率以求改进
3.算法分析的两个主要方面是:
空间复杂性和时间复杂性
可读性和文档性
4.计算机算法指的是:
计算方法B)排序方法
C)
D)
删除第i个结点(KiB)
D)
研究算法中的输入和输出的关系分析算法的易懂性和文档性
B)正确性和简明性
D)数据复杂性和程序复杂性
C)
5.计算机算法必须具备输入、输出和
可行性、可移植性和可扩充性
确定性、有穷性和稳定性
6.一个向量第一个元素的存储地址是
解决问题的有限运算序列等5个特性。
B)可行性、确定性和有穷性
D)易读性、稳定性和安全性
100,
(A)110(B)108(C)
(D)下列选项中与数据存储结构无关的术语是:
100
每个元素的长度为2,
(D)120
A.顺序表B.链表C.链队列
(A)7.链接存储的存储结构所占存储空间:
分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针只有一部分,存放结点值
只有一部分,存储表示结点间关系的指针
分两部分,一部分存放结点值,另一部分存放结点所占单元数
D.栈
D)
调度方法
则第
5个元素的地址是:
(A)
(B)
(C)
(D)
(B)8.带头结点的单链表
head,链表为空的判定条件是
(A)head==NULL
(B)
(B)
9.一个栈的输入序列为
head->next==NULL(C)head->next==head
若输出序列的第一个元素是
1,2,3,…,n,
(D)head!
=NULL
n,输出第i(1wiwn)个元素
是。
不确定B)n—i+1C)
10.最大容量为n的循环队列,队尾指针是
A)
(B)
A)(rear+1)%n==frontB)rear===front
(A)11.循环队列A[0..m—1]存放其元素值,用数是:
rear,
front
D)n—i
队头是front,则队空的条件是(
C)rear+1==frontD)(rear—l)%n==front
和rear分别表示队头和队尾,则当前队列中的元素
(A)(rear—front+m)%m(B)rear—front+1
(B)12.若用一个大小为6的数值来实现循环队列,且当前除一个元素,再加入两个元素后,rear和front的值分别为:
(A)1和5(B)2和4
(C)4和2
(C)rear—front—1(D)rear—front
rear和front的值分别为0和3,当从队列中删
(D)5和1
(C)13.按照二叉树的定义,具有3个结点的二叉树有()种。
A)3B)4C)5D)6[利用排列组合知识来做]
(B)14.若一棵二叉树中度为I的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是
(A)4(B)5(C)7(D)8
(B)15.具有n(n>0)个结点的完全二叉树的深度为:
(A)log2(n)(B)_log2(n)(C)_log2(n)+1(D)log2(n)+1
(D)16.对一个满二叉树,m个叶子,n个结点,深度为h,则:
(A)n=h+m(B)h+m=2n(C)m=h-1(D)n=2h-1
(C)17.在高度为h的完全二叉树中,表述正确的是(
A.度为0的结点都在第h层上B.第i(1
C.第i(1
(B)18.深度为5的二叉树至多有()个结点。
A)32B)31C)16D)10
(A)19.用邻接表表示图进行深度优先遍历时,通常采用()结构来时实现算法。
A)栈B)队列C)树D)图
(D)20.对N个记录作顺序查找时,当查找成功时,平均查找长度是(
A)N2B)N2/2C)ND)(N+1)/2
(B)21.当一个有n个顶点的图用邻接矩阵A表示时,顶点Vi的度是
(C)22.某算法的时间复杂度为0(2n),表明该算法的()
(D)23•“二叉树为空”意味着二叉树()
(D)26.数据采用顺序存储,要求()
A.顺序表长度B.结点类型C.结点中各字段的类型D.结点存放顺序
(A)28.数据采用链接存储,要求()
A.每个结点占用一片连续的存储区域
C.结点的最后一个字段是指针型的字段
(A)29.算法的时间复杂度与()有关
B.所有结点占用一片连续的存储区域
C•每个结点有多少个后继,就设多少个指针字段
A.问题规模B.计算机硬件性能C.编译程序质量D.程序设计语言
(C)30.在程序中,为了设置一个空的顺序表,必须()
A.给各数组元素赋空值B.给各顺序表元素赋空值
C.给表示顺序表长度的变量赋初始值D.给数组变量名赋初始值
(D)31•若变量H是某个带表头结点循环单向链表的表头指针,则在该链表最后的一个结点的后继指针域中存放的是()
A.H的地址B.H的值C.表头结点的值D.首元结点的地址
(A)32.栈和队列的共同点在于()
A.逻辑特性B•存储结构C•运算方法D.元素类型
(C)33.栈和队列的共同点在于()
A.都对存储方法作了限制B•都是只能进行插入、删除运算
C•都对插入、删除的位置作了限制D.都对插入、删除两中操作的先后顺序作了限制
(C)34.若5个元素的进栈序列是1,2,3,4,5,则不可能得到出栈序列()
(A)35.顺序循环队列中是否可以插入下一个元素,()
(A)36.在顺序队列中,元素的排列顺序()
(C)37.在高度为h的完全二叉树中,()
A.度为0的结点都在第h层上
C.第i(1<厅层上有2i-1个结点
(B)38.—颗二叉树如图所示,其中序遍历的序列为:
A.ABDGCEFH
B.DGBAECHF
C.GDBEHFCA
D.ABCDEFGH
(A)39.采用邻接表存储的图的深度优先遍历算法类似于二叉树的
A.先序遍历B.中序遍历C.后序遍历D.按层遍历
(D)40.采用邻接表存储的图的广度优先遍历算法类似于二叉树的
A.先序遍历B.中序遍历C.后序遍历D.按层遍历
(D)41.已知关键字序列为(51,22,83,46,75,18,68,30),对其进行快速排序,第一趟划分完成后的关键字序列是
二、填空题
1•数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。
2.下面程序段的时间复杂度是O(logan)。
i=1;
while(i<=n)i=i*3;
3•在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素
在表中的位置有关。
4•当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表的元素是,
应采用顺序存储结构。
5.在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。
6•已知L是带表头结点的非空单链表,且P结点既不是首元结点,也不是尾结点,试从下列提供的答案中
选择合适的语句序列。
删除P结点的直接后继结点的语句序列是(11)(4)(14)。
删除P结点的语句序列是(10)(12)(7)(4)(14)。
(1)P=P->next;
(2)P->next=P;(3)P->next=P->next