数据结构 期末考试复习题及答案
数据结构期末试题及答案
数据结构期末试题及答案一、单项选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构和链式存储结构的主要区别在于:A. 数据元素的存储关系B. 数据元素的存储空间C. 数据元素的存储顺序D. 数据元素的存储位置答案:A2. 下列关于栈的描述中,错误的是:A. 栈是一种后进先出(LIFO)的数据结构B. 栈只能进行插入和删除操作C. 栈顶元素可以被访问D. 栈可以进行顺序存储和链式存储答案:B3. 在二叉树的遍历算法中,不使用递归算法的遍历方式是:A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:D4. 哈希表的冲突解决方法中,不包括以下哪种:A. 开放定址法B. 链地址法C. 线性探测法D. 排序法答案:D5. 在图的遍历算法中,深度优先搜索(DFS)和广度优先搜索(BFS)的主要区别在于:A. 搜索的顺序B. 存储结构C. 遍历的深度D. 遍历的宽度答案:A6. 快速排序算法的时间复杂度最坏情况下为:A. O(n)B. O(nlogn)C. O(n^2)D. O(n^3)答案:C7. 下列关于二叉搜索树的描述中,正确的是:A. 每个节点的左子树只包含小于该节点的键值B. 每个节点的右子树只包含大于该节点的键值C. 以上两个选项都正确D. 以上两个选项都不正确答案:C8. 在非递归的二叉树遍历算法中,通常需要使用的数据结构是:A. 栈B. 队列C. 链表D. 数组答案:A9. 一个有n个顶点的无向图,其边数最多为:A. nB. n(n-1)/2C. n(n+1)/2D. n^2答案:B10. 一个长度为n的数组进行归并排序时,需要的辅助空间大小为:A. O(1)B. O(n)C. O(nlogn)D. O(n^2)答案:B二、填空题(每题2分,共10分)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、下述二叉树中,()满足性质:从任一结点出发到根的路径上所经过的结点序列按其关键字有序。
数据结构期末考试复习题及参考答案
第1章绪论1. 填空(1)()是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
【解答】数据元素(2)()是数据的最小单位,()是讨论数据结构时涉及的最小数据单位。
【解答】数据项,数据元素【分析】数据结构指的是数据元素以及数据元素之间的关系。
(3)从逻辑关系上讲,数据结构主要分为()、()、()和()。
【解答】集合,线性结构,树结构,图结构(4)数据的存储结构主要有()和()两种基本方法,不论哪种存储结构,都要存储两方面的内容:()和()。
【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系(5)算法具有五个特性,分别是()、()、()、()、()。
【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性(6)在一般情况下,一个算法的时间复杂度是()的函数。
【解答】问题规模(7)设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为(),若为n*log25n,则表示成数量级的形式为()。
【解答】Ο(1),Ο(nlog2n)【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。
2. 选择题⑴顺序存储结构中数据元素之间的逻辑关系是由()表示的,链接存储结构中的数据元素之间的逻辑关系是由()表示的。
A 线性结构B 非线性结构C 存储位置D 指针【解答】C,D【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。
⑵假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。
则表示该遗产继承关系的最合适的数据结构应该是()。
A 树B 图C 线性表D 集合【解答】B【分析】将丈夫、妻子和子女分别作为数据元素,根据题意画出逻辑结构图。
⑶算法指的是()。
数据结构试题及答案_经典期末试题
一、一、单选题(每题 2 分,共20分)1. 1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2. 2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3. 3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4. 4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965. 5.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6. 6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.7.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.8.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.10.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、二、填空题(每空1分,共26分)1. 1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
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.线索二叉链表是利用()域存储后继结点的地址。
《数据结构》期末考试复习题及参考答案
数据结构复习题(课程代码 252259)一、填空题(本大题共40小题)1.队列中是按照______先进先出______的原则进行数据元素的增删。
2.___栈__又称为LIFO表。
3.在顺序存储的完全二叉树中,若编号为i的结点有左孩子结点,则其右孩子结点的编号为___2i+1___。
4.存储地址与关键字之间存在某种映射关系的存储结构为_______散列存储结构_______。
5.在串S=“structure”中,以r为首字符的子串有_9_个。
6.设有整型二维数组M[4][3],每个元素(整数)占2个存储单元,元素按行的顺序存储,数组的起始地址为200,元素M[1][1]的地址是___208____。
7.在一个具有n个顶点的无向完全图中,包含有___ n(n-1)/2_____条边,在一个具有n个顶点的有向完全图中,包含有__ n(n-1)______条边。
8.假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为_____(12,40)()(74)(23,55,63)____。
9.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度____增加1______。
10.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为__ O(log2n)______,整个堆排序过程的时间复杂度为__ O(nlog2n)______。
11.在快速排序、堆排序、归并排序中,____归并_____排序是稳定的。
12.一棵深度为5的满二叉树中的结点数为_______31_______个。
13.在含n个顶点和e条边的无向图的邻接矩阵中,非零元素的个数为__2e __。
14.从一棵二叉排序树中查找一个元素时,若元素的值大于根结点的值,则继续向____右子树____查找。
15._____拓朴排序______可以判断出一个有向图中是否有环。
(完整版)数据结构复习题(附答案)
(完整版)数据结构复习题(附答案)⼀、算法设计题(每题15分,共60分)答题要求:①⽤⾃然语⾔说明所采⽤算法的思想;②给出每个算法所需的数据结构定义,并做必要说明;③写出对应的算法程序,并做必要的注释。
1、有⼀个带头结点的单链表,每个结点包括两个域,⼀个是整型域info,另⼀个是指向下⼀个结点的指针域next。
假设单链表已建⽴,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留⼀个。
3、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个⼈按顺时针⽅向围坐成⼀圈,现从第s个⼈开始按顺时针⽅向报数,数到第m个⼈出列,然后从出列的下⼀个⼈重新开始报数,数到第m的⼈⼜出列,…,如此重复直到所有的⼈全部出列为⽌。
现要求采⽤循环链表结构设计⼀个算法,模拟此过程。
4、编程实现单链表的就地逆置。
23.在数组 A[1..n]中有n个数据,试建⽴⼀个带有头结点的循环链表,头指针为h,要求链中数据从⼩到⼤排列,重复的数据在链中只保存⼀个.5、设计⼀个尽可能的⾼效算法输出单链表的倒数第K个元素。
3、假设以I和O分别表⽰⼊栈和出栈操作。
栈的初态和终态均为空,⼊栈和出栈的操作序列可表⽰为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为⾮法序列。
(15分)(1)下⾯所⽰的序列中哪些是合法的?A. IOIIOIOOB. IOOIOIIOC. IIIOIOIOD. IIIOOIOO(2)通过对(1)的分析,写出⼀个算法,判定所给的操作序列是否合法。
若合法,返回true,否则返回false(假定被判定的操作序列已存⼊⼀维数组中)。
5、设从键盘输⼊⼀整数的序列:a1, a2, a3,…,an,试编写算法实现:⽤栈结构存储输⼊的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。
算法应对异常情况(⼊栈满等)给出相应的信息。
设有⼀个背包可以放⼊的物品重量为S,现有n件物品,重量分别为W1,W2,...,W n。
数据结构期末考试题及答案
数据结构期末考试题及答案一、选择题(每题2分,共10题)1. 数据结构是指()A. 存储和组织数据的方式B. 对数据进行计算和处理的方法C. 数据的物理表示形式D. 数据的逻辑结构答案:A. 存储和组织数据的方式2. 在数据结构中,栈是一种()A. 先进先出的数据结构B. 后进先出的数据结构C. 随机存取的数据结构D. 按键值查找的数据结构答案:B. 后进先出的数据结构3. 下列哪种数据结构不支持随机访问?()A. 队列B. 栈C. 数组D. 链表答案:D. 链表4. 在二叉树中,每个节点最多可以有几个子节点?()A. 0B. 1C. 2D. 无限多答案:C. 25. 在图的表示方法中,邻接矩阵适用于()A. 稠密图B. 稀疏图C. 有向图D. 无向图答案:A. 稠密图6. 下列排序算法中,最坏情况时间复杂度为O(nlogn)的是()A. 冒泡排序B. 插入排序C. 快速排序D. 选择排序答案:C. 快速排序7. 广度优先搜索算法用于()A. 求最短路径B. 求全排列C. 求最小生成树D. 求图的连通分量答案:A. 求最短路径8. 哈希表的查找时间复杂度为()A. O(1)B. O(n)C. O(logn)D. O(n^2)答案:A. O(1)9. AVL树是一种()A. 无序树B. 有序树C. 平衡树D. 非平衡树答案:C. 平衡树10. 以下哪个不属于基本的查找算法?()A. 二分查找B. 插值查找C. 散列查找D. 顺序查找答案:C. 散列查找二、填空题(每题4分,共4题)11. 下列不是线性表的是()答案:二叉树12. 在冒泡排序中,每一轮的比较次数是________答案:n-113. 在堆排序中,堆的建立时间复杂度为________答案:O(n)14. 从一个顶点到其余各顶点的最短路径算法是________答案:Dijkstra算法三、简答题(每题10分,共3题)15. 请简要说明栈的应用场景,并给出一个具体实例。
数据结构期末试题及答案
模拟试题一一、判断题(下列各题,你认为正确的,请在前面的括号内打√,错误的打×。
每题1分,共10分)(√)1.数据的存储结构是数据的逻辑结构的存储映像。
(√)2.用顺序表来存储线性表时,不需要另外开辟空间来保存数据元素之间的相互关系。
(×)3.非线性结构中,至少存在一个元素不止一个直接前驱或不止一个直接后继。
(√)4.树的最大特点是一对多的层次结构。
(√)5.队列的特点是先进先出。
(×)6.图的最小生成树是惟一的。
()7.线性表是广义表的特殊形式。
(√)8.由后序遍历序列和中序遍历序列能惟一确定一棵二叉树。
(×)9.散列表是一种链式存储结构。
(×)10.快速排序并非在任何情况下都比其他排序方法速度快。
二、填空题(每空2分,共20分)1.数据的存储结构的4种形式为链接存储顺序存储、散列存储和索引存储。
2.所有插入和删除都在表的一端进行的线性表称为队列。
3.有n个结点的完全二叉树(空二叉树的深度为0),其深度h= 「log2n」+1 。
4.对于顺序循环队列Q[M],下标从0到M-1,头尾指针分别为F和R,入队时,队尾指针的变化可以表示为R= (R+1)%M 。
5.散列法既是一种查找方法,又是一种存储方法。
6.n个顶点的有向完全图具有 n*(n-1)条弧。
7.n个元素的顺序查找(检索)的平均查找长度为(n+1)/2 。
三、单选题(本题的每一备选答案中,只有一个是正确的,请把你认为正确的答案填入括号内,多选不给分,每小题3分,共15分)1.若进栈序列为1,2,3,4,则不可能得到的出栈序列是( C )。
A)3,2,1,4 B)3,2,4,1C)4,2,3,1 D)2,3,4,12.对于图1所示的二叉树,其后序序列为(C )。
A)ABDECFG B)DBEAFCGC)DEBFGCA D)GFCEBDA3.对于图2所示的AOV网,不能出现的拓扑序列为( A )。
数据结构期末考试试题及答案
数据结构期末考试试题及答案一、选择题1. 以下哪种数据结构是线性存储结构?A. 树B. 图C. 链表D. 哈希表答案:C2. 在二叉搜索树中,若删除一个节点,则需要进行以下哪些操作?A. 仅删除操作B. 删除操作和调整树结构操作C. 插入操作D. 忽略操作答案:B3. 快速排序算法的时间复杂度在最坏情况下是:A. O(log n)B. O(n)C. O(n log n)D. O(n^2)答案:D4. 下面哪个排序算法适用于大数据量的排序?A. 冒泡排序B. 快速排序C. 插入排序D. 归并排序答案:D5. 哈夫曼树是一种特殊的:A. 二叉树B. 多叉树C. 哈希表D. 图答案:A二、填空题1. 链表的基本操作包括__________、__________、__________和__________。
答案:创建、插入、删除、查找2. 栈是一种后进先出(LIFO)的数据结构,其添加元素的操作称为__________,移除元素的操作称为__________。
答案:push、pop3. 在图的遍历算法中,按照遍历方向的不同,可以分为__________和__________。
答案:深度优先遍历、广度优先遍历4. 红黑树是一种自平衡的__________。
答案:二叉搜索树4. 散列表(哈希表)的主要优点是__________。
答案:查找速度快三、简答题1. 请简述数组和链表的区别及各自的优缺点。
答案:数组是一种顺序存储结构,通过索引直接访问元素,访问速度快,但是插入和删除操作需要移动大量元素,效率较低。
链表是一种非顺序存储结构,通过指针连接元素,插入和删除操作只需要改变指针,效率较高,但是访问元素需要从头开始遍历,速度较慢。
2. 请解释二分查找法的工作原理及其适用条件。
答案:二分查找法是一种在有序数组中查找特定元素的算法。
工作原理是将数组分为两部分,判断目标值与中间元素的大小关系,然后在相应的一半中继续查找,重复此过程,直到找到目标值或范围缩小到无法再分。
数据结构期末复习题及答案6
数据结构期末复习题及答案6数据结构期末考试试题及答案期末样卷参考答案⼀.是⾮题(每题1分共10分)1. 线性表的链式存储结构优于顺序存储结构。
F2. 栈和队列也是线性表。
如果需要,可对它们中的任⼀元素进⾏操作。
F3.字符串是数据对象特定的线性表。
T4.在单链表P指针所指结点之后插⼊S结点的操作是:P->next= S ; S-> next = P->next; F5.⼀个⽆向图的连通分量是其极⼤的连通⼦图。
T 6.邻接表可以表⽰有向图,也可以表⽰⽆向图。
T 7.假设B是⼀棵树,B′是对应的⼆叉树。
则B的后根遍历相当于B′的中序遍历。
T8.通常,⼆叉树的第i层上有2i-1个结点。
F9.对于⼀棵m阶的B-树,树中每个结点⾄多有m 个关键字。
除根之外的所有⾮终端结点⾄少有ém/2ù个关键字。
F10.对于任何待排序序列来说,快速排序均快于起泡排序。
F⼆.选择题(每题2分共28分)1.在下列排序⽅法中,(c )⽅法平均时间复杂度为0(nlogn),最坏情况下时间复杂度为0(n2);(d )⽅法所有情况下时间复杂度均为0(nlogn)。
a. 插⼊排序b. 希尔排序c. 快速排序d. 堆排序2. 在有n个结点的⼆叉树的⼆叉链表表⽰中,空指针数为( b )。
a.不定b.n+1c.nd.n-13. 下列⼆叉树中,(a )可⽤于实现符号不等长⾼效编码。
a.最优⼆叉树b.次优查找树c.⼆叉平衡树d.⼆叉排序树4. 下列查找⽅法中,(a )适⽤于查找有序单链表。
a.顺序查找b.⼆分查找c.分块查找d.哈希查找5. 在顺序表查找中,为避免查找过程中每⼀步都检测整个表是否查找完毕,可采⽤( a )⽅法。
a.设置监视哨b.链表存贮c.⼆分查找d.快速查找6. 在下列数据结构中,(c )具有先进先出特性,(b )具有先进后出特性。
a.线性表b.栈c.队列d.⼴义表7.具有m个结点的⼆叉排序树,其最⼤深度为(f ),最⼩深度为( b )。
数据结构期末试题(带答案)
一、选择题(每小题1分,共10分)
1、如果树的结点A有4个兄弟,而且B为A的双亲,则B的度为。
(A)3(B)4(C)5(D)1
2、设有一个栈,元素的进栈次序为A,B,C,D,E,则下列是不可能的出栈序列。
(A)A,B,C,D,E(B)B,C,D,E,A(C)E,A,B,C,D(D)E,D,C,B,A
{
a->elem[i+1]=a->elem[i];
}
}
a[k+1]=y;
a->length;
return 1;
}
3、已知一个单链表的表头指针为h,每个结点含元素值data和下一结点的地址next。链表一共有5个结点,其元素值分别为100,200,300,400,500,经过下列语句后,输出什么结果?(本题3分)
8、如果某排序算法是稳定的,那么该方法一定具有实际应用价值。()
三、填空题(每题2分,共16分)
1、数据结构有线性结构、树结构、、等几种逻辑结构。
2、已知某算法的执行时间为(n+n2)/2+log2(2n+1),n代表问题规模,则该算法的时间复杂度是O(n2)。
3、一个无向连通图有6个顶点7条边,则其生成树有条边。
4、顺序存储的队列如果不采用循环方式,则会出现问题。
5、一个10×10的三角矩阵a采用行优先压缩存储后,如果首元素a[0][0]是第一个元素,那么a[4][2]是第个元素。
6、如果一个有向图有5个顶点,则它最多有条弧。
7、采用快速排序法进行排序时,如果有序排列时,排序效率会大大降低。
8、设无向图G有100条边,则G至少有101个顶点。
8、设一颗完全二叉树中根结点的编号为1,而且23号结点有左孩子但没有右孩子,则完全二叉树总共有个结点。
大学数据结构期末考试试题(有答案)
“数据结构”期末考试试题一、单选题(每小题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.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层—-调整,直到被调整到——位置为止.8.表示图的三种存储结构为——、——和-——.9.对用邻接矩阵表示的具有n个顶点和e条边的图进行任一种遍历时,其时间复杂度为-—,对用邻接表表示的图进行任一种遍历时,其时间复杂度为—-。
《数据结构》期末复习题及参考答案
《数据结构》复习资料一单选题 (共48题,总分值0分 )1. 设用链表作为栈的存储结构,则退栈操作(0 分)A. 必须判别栈是否为满B. 必须判别栈是否为空C. 判别栈元素的类型D. 对栈不作任何判别2. 下面关于m阶B树说法正确的是()。
①每个结点至少有两棵非空子树;②树中每个结点至多有m-1个关键字;③所有叶子在同一层上;④当插入一个数据项引起B树结点分裂后,树长高一层。
(0 分)A. ①②③B. ②③C. ②③④D. ③3. 下列关于文件的说法,错误的是()。
(0 分)A. 选择文件的组织方式时应考虑外存的性质和容量B. 不定长文件指的是总长度可变的文件C. 对文件的操作主要是维护和检索D. 文件的存储结构指的是文件在外存上的组织方式4. 设无向图的顶点个数为n,则该图最多有()条边。
(0 分)A. n-1B. n(n-1)/2C. n(n+1)/2D. n25. 设广义表L=((a,()),b,(c,d,e)),则Head(Tail(Tail(L)))的值为()。
(0 分)A. bB. cC. (c)D. (c,d,e)6. 设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
(0 分)A. 688B. 678C. 692D. 6967. 设某无向图中有n个顶点e条边,则该无向图中所有顶点的入度之和为(0 分)A. nB. eC. 2nD. 2e8. 广义表(a,(b,(),c))的深度为()。
(0 分)A. 1B. 2C. 3D. 49. 设有向图G中有五个顶点,各顶点的度分别为3、2、2、1、2,则G中弧数为()。
(0 分)A. 4条B. 5条C. 6条D. 无法确定10. 若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为(0 分)A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,311. 具有n个顶点的有向强连通图最少有()条弧。
数据结构期末考试试题及答案
数据结构期末考试试题及答案一、选择题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-18. ()适合作为经常在首尾两端操作线性表的存储结构。
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.数据的逻辑结构被分为集合、线性结构、树形结构和图结构。
数据结构期末试题及答案
数据结构期末试题及答案一、选择题1. 在数据结构中,以下哪个选项不是线性数据结构的特点?- A. 元素个数有限- B. 元素类型相同- C. 元素之间存在一对一的线性关系- D. 元素之间存在一对多的非线性关系答案:D2. 栈是一种后进先出(LIFO)的数据结构,以下哪个操作不是栈的基本操作?- A. 入栈(push)- B. 出栈(pop)- C. 查看栈顶元素(peek/top)- D. 判断栈是否为空(isEmpty)- E. 删除栈中所有元素(clear)答案:E3. 在二叉树中,以下哪个选项不是二叉树的特点?- A. 每个节点最多有两个子节点- B. 子节点分为左子节点和右子节点- C. 左子节点的值一定小于父节点- D. 节点没有顺序答案:C4. 哈希表的冲突解决方法,以下哪个不是常用的方法?- A. 开放寻址法- B. 链地址法- C. 再哈希法- D. 排序法答案:D二、简答题1. 简述链表和数组的区别。
- 链表是一种动态数据结构,元素通过指针连接,不需要连续的内存空间;数组是一种静态数据结构,元素在内存中连续存储。
- 链表的插入和删除操作不需要移动其他元素,而数组需要移动元素来保持连续性。
- 数组的随机访问速度快,因为可以直接通过索引访问;链表的随机访问需要从头开始遍历。
2. 解释二叉搜索树(BST)的中序遍历。
- 中序遍历是一种遍历二叉树的算法,按照左子树、根节点、右子树的顺序访问节点。
- 对于二叉搜索树,中序遍历的结果是一个递增的序列。
三、编程题1. 编写一个函数,实现单链表的反转。
```pythonclass ListNode:def __init__(self, x):self.val = xself.next = Nonedef reverseList(head):prev = Nonecurrent = headwhile current:next_node = current.nextcurrent.next = prevprev = currentcurrent = next_nodereturn prev```2. 编写一个函数,实现二叉树的前序遍历。
《数据结构》期末复习题-答案
《数据结构》期末复习题-答案《数据结构》期末复习题-答案1.以下与数据的存储结构⽆关的术语是( c )C、哈希表2.⼀个向量第⼀个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( B )B、1083.假设带头结点的单向循环链表的头指针为head,则该链表为空的判定条件是( C )C、head–>next= =head4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进⾏,则不可能出现的出栈序列是( D )D、2,3,5,1,6,45.下列关键字序列中,构成⼩根堆的是( A )A、{12,21,49,33,81,56,69,41}6.下列数据结构中,不属于⼆叉树的是( A )A、B树7.⽤顺序存储的⽅法来存储⼀棵⼆叉树,存放在⼀维数组A[1..N]中,若结点A[i]有右孩⼦,则其右孩⼦是( C )。
C、A[2i+1]8.设树T的⾼度为4,其中度为1、2、3、4的结点个数分别为4、2、1、1,则T中叶⼦数为( D )D、 89.有数据{53,30,37,12,45,24,96},从空⼆叉树开始逐个插⼊数据来形成⼆叉排序树,若希望⾼度最⼩,则应选择下⾯哪个序列输⼊( B )B、37,24,12,30,53,45,9610.对下⾯有向图给出了四种可能的拓扑序列,其中错误的是( C )C、5,1,6,3,4,211.m阶B-树中所有⾮终端(除根之外)结点中的关键字个数必须⼤于或等于( B )B、[m/2]-112.散列⽂件也称为( C )B 、索引⽂件13.数据结构是( D )D、相互之间存在⼀种或多种特定关系的数据元素的集合14.从逻辑关系来看,数据元素的直接前驱为0个或1个的数据结构只能是( C )C、线性结构和树型结构15.设p为指向双向循环链表中某个结点的指针,p所指向的结点的两个链域分别⽤p→llink和p→rlink表⽰,则同样表⽰p指针所指向结点的表达式是( D )底在V[m],则栈满的条件是( B )B、 top[1]+1=top[2]17.若⼀棵⼆叉树有11个叶⼦结点,则该⼆叉树中度为2的结点个数是( A )A、1018.树的先根序列等同于与该树对应的⼆叉树的( A )A、先序序列19.下⾯关于哈希(Hash,杂凑)查找的说法正确的是( C )C、不存在特别好与坏的哈希函数,要视情况⽽定20.下列序列中,( D )是执⾏第⼀趟快速排序后所得的序列。
数据结构期末考试题及答案
数据结构期末考试题及答案一、选择题1. 以下哪种数据结构是线性存储结构?A. 树B. 图C. 链表D. 哈希表答案:C2. 栈和队列的共同特点是:A. 只能在一端进行插入和删除操作B. 插入和删除操作在不同的两端进行C. 插入和删除操作在同一端进行D. 没有共同点答案:B3. 在二叉搜索树中,若要查找值为x的节点,当发现一个节点的值大于x时,应该:A. 在该节点的左子树中查找B. 在该节点的右子树中查找C. 停止查找D. 随机查找答案:A4. 快速排序算法的时间复杂度为:A. O(log n)B. O(n log n)C. O(n^2)D. O(1)答案:B5. 下面哪种排序算法适用于大数据量的排序?A. 冒泡排序B. 插入排序C. 快速排序D. 选择排序答案:C二、填空题1. 链表的基本操作包括________、________、________和________。
答案:创建、插入、删除、查找2. 在图的表示中,邻接矩阵法的主要缺点是________,而邻接表法的主要缺点是________。
答案:空间消耗大、查询效率低3. 哈夫曼树是一种基于________的最优二叉树,广泛应用于数据压缩和编码。
答案:字符频率4. 红黑树是一种自平衡的二叉搜索树,它的插入和删除操作能保证最坏情况下的查找时间复杂度对数级,具体为________。
答案:O(log n)5. 散列表(哈希表)解决冲突的方法主要有开放定址法、链地址法和________。
答案:双重散列法三、简答题1. 请简述数组和链表的区别及各自的优缺点。
答案:数组是一种顺序存储结构,它的特点是通过索引直接访问元素,访问速度快,但是大小固定,不便于动态扩展。
链表是非连续的存储结构,元素通过指针连接,可以动态地插入和删除元素,但是访问元素需要从头开始遍历,速度较慢。
2. 描述二分查找的算法过程及其时间复杂度。
答案:二分查找是一种在有序数组中查找特定元素的算法。
数据结构期末试题及答案
D一、单项选择题1、在以下的叙述中,正确的是( A )。
A. 线性表的线性存储结构优于链表存储结构B. 二维数组是其数据元素为线性表的线性表C. 栈的操作方式是先进先出D. 队列的操作方式是先进后出2、判定一个循环队列qu(最多元素为m0)为空的条件是( A )。
A. qu->front==qu->rearB. qu->front!=qu->rearC. qu->front=(qu->rear+1)%m0D. qu->front!=(qu->rear+1)%m03、向一个栈顶指针为hs的链栈中插入一个s所指结点时,则执行( C )。
A. hs->next=s;B. s->next=hs->next;hs->next=s;C. s->next=hs;hs=s;D. s->next=hs;hs=sh->next4、串是一种特殊的线性表,其特殊性体现在(B)。
A. 可以顺序存储B. 数据元素是一个字符C. 可以链接存储D. 数据元素可以是多个字符5、设矩阵A是一个对称矩阵,为了节省存储,将其下三角部分按行序存放在一维数组B[1,n(n-1)/2]中,对下三角部分中任一元素a(i≥j),i,j在一维数组B的下标位置k的值是( B )。
A. i(i-1)/2+j-1B. i(i-1)/2+jC. i(i+1)/2+j-1D. i(i+1)/2+j6、将递归算法转换成对应的非递归算法时,通常需要使用( A )。
A. 栈B. 队列C. 链表D. 树7、树的基本遍历策略可分为先根遍历和后根遍历叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。
这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树。
结论__A__是正确的。
A. 树的先根遍历序列与其对应的二叉树的先序遍历序列相同B. 树的后根遍历序列与其对应的二叉树的后序遍历序列相同C. 树的先根遍历序列与其对应的二叉树的中序遍历序列相同D. 以下都不对8、对一个满二叉树,m个树叶,n个结点,深度为h,则( D )。
《数据结构》期末考试试卷(含答案)
一、选择题(每小题2分,共24分)1.计算机识别、存储和加工处理的对象被统称为( A )A.数据B.数据元素C.数据结构D.数据类型2.栈和队列都是(A)A.限制存取位置的线性结构B.顺序存储的线性结构C.链式存储的线性结构D.限制存取位置的非线性结构3.链栈与顺序栈相比,比较明显的优点是( D )A.插入操作更加方便B.删除操作更加方便C.不会出现下溢的情况D.不会出现上溢的情况4.采用两类不同存储结构的字符串可分别简称为( B )A.主串和子串B.顺序串和链串C.目标串和模式串D.变量串和常量串5.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是:BA. 110 B .108C. 100D. 1206.串是一种特殊的线性表,其特殊性体现在:BA.可以顺序存储 B .数据元素是一个字符C. 可以链接存储D. 数据元素可以是多个字符7.设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为:CA. 2h B .2h-1C. 2h+1D. h+1软件开发网8.树的基本遍历策略可分为先根遍历和后根遍历;二叉树的基本遍历策略可分为先序遍历、中序遍历和后序遍历。
这里,我们把由树转化得到的二叉树叫做这棵树对应的二叉树。
下列结论哪个正确? AA. 树的先根遍历序列与其对应的二叉树的先序遍历序列相同B .树的后根遍历序列与其对应的二叉树的后序遍历序列相同C. 树的先根遍历序列与其对应的二叉树的中序遍历序列相同D. 以上都不对9.一个有n个顶点的无向图最多有多少边?CA. n B .n(n-1)C. n(n-1)/2D. 2n10.在一个图中,所有顶点的度数之和等于所有边数的多少倍?CA. 1/2 B .1C. 2D. 411.当在二叉排序树中插入一个新结点时,若树中不存在与待插入结点的关键字相同的结点,且新结点的关键字小于根结点的关键字,则新结点将成为(A)A.左子树的叶子结点B.左子树的分支结点C.右子树的叶子结点D.右子树的分支结点软件开发网12.对于哈希函数H(key)=key%13,被称为同义词的关键字是( D )A.35和41B.23和39C.15和44D.25和51二、已知某棵二叉树的前序遍历结果为A,B,D,E,G,C,F,H,I,J,其中中序遍历的结果为D,B,G,E,A,H,F,I,J,C。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.什么是最小生成树?简述最小生成树的Prime算法的思想。
答:最小生成树就是构造一棵生成树,使得树上各边的代价之和最小。
普里姆算法(Prim)的基本思想:
从连通网络N = { V, E }中的某一顶点u0 出发,选择与它关联的具有最小权值的边(u0, v),将其顶点加入到生成树的顶点集合U中。
以后每一步从一个顶点在U中,而另一个顶点不在U中的各条边中选择权值最小的边(u, v),把它的顶点加入到集合U中。
如此继续下去,直到网络中的所有顶点都加入到生成树顶点集合U中为止。
2.简述AOV网络中为何不能出现回路,如何判断AOV网络是否有回路?
答:在AOV网络中,如果活动vi必须在vj之前进行,则称为存在有向边;在AOV网络中不能出现有向回路,如果出现了,则意味着某项活动应以自己作为先决条件。
如何检查AOV网是否存在有向环:
检测有向环的一种方法是对AOV网络构造它的拓扑有序序列。
即将各个顶点(代表各个活动)排列成一个线性有序的序列,使得AOV网络中所有应存在的前驱和后继关系都能得到满足。
(1)这种构造AOV网络全部顶点的拓扑有序序列的运算就叫做拓扑排序。
(2)如果通过拓扑排序能将AOV网络的所有顶点都排入一个拓扑有序的序列中,则该AOV 网络中必定不会出现有向环;相反,如果得不到满足要求的拓扑有序序列,则说明AOV网络中存在有向环,此AOV网络所代表的工程是不可行的。
3.为何需要采用循环队列?n个空间的循环队列,最多存储多少个元素?为什
么?
答:循环队列以克服顺序队列的"假上溢"现象,能够使存储队列的向量空间得到充分的利用,所以采用循环队列。
n个空间的循环队列,最多存储n-1个元素,那是为了区别循环队列的队空和队满的条件。
队空的条件是Q.front==Q.rear,而队满的条件是(Q.rear+1)%N==Q.front(N是数组中单元的总数),因此,Q.rear所指向的数组单元处于未用状态。
所以说,N个单元的数组所存放的循环队列最大长度是N-1。
4.简述堆的删除算法,其删除的是那个值?
答:堆的删除算法:首先,移除根节点的元素(并把根节点作为当前结点)比较当前结点的两个孩子结点的元素大小,把较大的那个元素移给当前结点,接着把被移除元素的孩子结点作为当前结点,并再比较当前结点的孩子的大小,以此循环,直到最后一个叶子结点的值大于或等于当前结点的孩子结点或孩子结点的位置超过了树中元素的个数,则退出循环。
最后把最后叶子结点的元素移给当前结点。
在堆的算法里面,删除的值为根值。
5.线索二叉树中,什么是线索,它是否唯一?可有根据什么顺序得到?
答:指向直接前驱结点和指向直接后续结点的指针被称为线索(Thread),加了线索的二叉树称为线索二叉树。
线索二叉树是唯一的,因为知道先序遍历后,第一个根是唯一确定的,然后在中序遍历里这个根将它分为两个部分,第一个根的两棵子树的根也会唯一确定,依次此类推,所有子树的根都唯一确定,二叉树就是唯一的。
6.链式插入排序对比直接插入排序有何优点和缺点?
答:链式插入排序优点是速度极快,特别是在数据量大的时候效果尤为明显;其缺点是在数据量少的情况
下内存相对消耗较多。
直接插入排序优点是排序比较简单,稳定性高;缺点是在数据量很大的情况下效率很低。
所以链式插入排序适合数据量大的情况,直接插入排序适合数据量少的情况。
7.画出该图的邻接矩阵和邻接表。
根据邻接表从A开始求DFS(深度优先搜索)
和BFS(广度优先搜索)序列。
答:
DFS:A->C->F->E->D->B
BFS: A->C->B->F->D->E
8.已知序列[70,73,69,23,93,18,11,68],请给出直接插入排序作升序排序每一
趟的结果和快速排序作为升序排序时一趟的结果。
答:
直接插入排序
70 73 69 23 93 18 11 68
70 73 69 23 93 18 11 68
69 70 73 23 93 18 11 68
23 69 70 73 93 18 11 68
23 69 70 73 93 18 11 68
18 23 69 70 73 93 11 68
11 18 23 69 70 73 93 68
11 18 23 68 69 70 73 93
快速排序
R1 R2 R3 R4 R5 R6 R7 R8 left right
[70 73 69 23 93 18 11 68] 1 10
[68 11 69 23 18] 70 [93 73] 1 5
[18 11 23] 68 [69] 70 [93 73] 1 3
[11] 18 [23] 68 [69] 70 [93 73] 7 8
[11 18 23 68 69 70 [73 93]
9.下图表示一个地区的交通网,顶点表示城市,边表示连结城市间的公路,边上的权表示修建公路花费的代价。
怎样选择能够沟通每个城市且总造价最省的n-1条公路,画出所有可能的方案。
答:
1
10. 已知一个无向图的邻接表如下图所示:
(1)画出这个图。
(2)以v1为出发点,对图进行广度优先搜索和深度优先搜索。
给出搜索的
结点序列。
答:Array
(1
(2).
DFS: 0->1->3->4->5->2
BFS: 0->1->2->3->5->4
11. 设有一组关键字(70,73,69,23,93,18,11,68),设提供的散列表长度为12,
用除留余数法设计散列函数,取的较恰当除数应为多少。
采用线性探测方法解决散列冲突,请构造其散列表并将所有关键字入表。
答:
因为散列表长度为12,且除数应尽量取基数;所以为11.
经检验:70%11=4;73%11=7;69%11=3;23%11=1; 93%11=3;
18%11=7;
11%11=0; 18%11=2;
采用线性探测的哈希表(12个桶,每个桶一个槽)
12. 用最短路径算法Dijkstra计算单源多目标最短路径。
图中的“1”号结点为
源结点。
按提示图表给出每一步计算时最短路径的变化。
答:
dist[6]存放从顶点v0到其他各顶点的当前最短路径。
Path[6]存放在最短路径上该定点的前一顶点。
S[6]存放以求得的在最短路径上的定点集合V[6]存放所有顶点
13.完成下面二叉搜索树查找插入程序(说明含义)。
此程序使用的是什么算法?根据给出的结点图给出结点类的数据成员描述。
template <class Elem>
bool BST<Elem>::search_and_insert(
Binnode<Elem> *&sub_root, const Elem &new_data)
{
if (sub_root == NULL) {
sub_root = new Binnode<Elem>(new_data);
return ture;
}
else if (new_data < sub_root->data)
return search_and_insert(sub_root->lchild, new_data);
else if (new_data > sub_root->data)
return search_and_insert(sub_root->rchild, new_data);
else return false; }
算法:在该函数中引用一个指向Binnode指针sub_root和指向ELEM类型的指针new_data,如果指向Binonode的指针sub_root为空,则该指针指向一个带ELEM类型数据的新结点。
如果sub_root所指向的不为空,则比较sub_root->data与new-data的大小,当new_data<sub_root->data,则递归调用该函数,并把sub_root->lchild作为引用指针;如果sub_root->data<new_data,则sub_rchild作为引用指针。
2. 用堆排序方法将下列数据从小到大排序。
以树的形式给出前两趟排序结果。
(6分)
[35, 57,,23,78, 6, 11]
答:
A:输入数值 B:初始堆
a 堆大小=5
b 堆大小=4 已排序=[78]
已排序=[57,78]
A 堆大小=3 b
堆大小=2
已排序=[35,57,78]
已排序=[23,35,57,78]
感谢下载!
欢迎您的下载,资料仅供参考。