中山大学十套数据结构试题及答案
- 格式:pdf
- 大小:1.07 MB
- 文档页数:17
国开期末考试《数据结构与算法》机考试题及答案(第10套)一、选择题(每题2分,共20分)1. 数据的逻辑结构是指()。
A. 数据元素之间的逻辑关系B. 数据元素本身的特点C. 数据的存储结构D. 数据的加工处理过程答案:A. 数据元素之间的逻辑关系二、填空题(每题2分,共20分)2. 在栈中,最后进入的数据元素总是首先被()。
答案:弹出三、判断题(每题2分,共20分)3. 线性表是一种线性结构。
()答案:正确四、简答题(每题10分,共30分)4. 简述顺序存储结构和链式存储结构的特点。
答案:顺序存储结构:数据元素在物理位置上连续存储,可以通过下标快速访问。
五、编程题(共50分)5. 编写一个函数,实现单链表的排序。
(20分)答案:class ListNode:def __init__(self, value):self.value = valueself.next = Nonedef sort_linked_list(head):if not head or not head.next:return headpivot = head.valueless = less_head = ListNode(None) equal = equal_head = ListNode(None) greater = greater_head = ListNode(None)current = headwhile current:if current.value < pivot:less.next = currentless = less.nextelif current.value == pivot:equal.next = currentequal = equal.nextelse:greater.next = currentgreater = greater.nextcurrent = current.nextless.next = less_head.nextequal.next = equal_head.next greater.next = greater_head.nextreturn merge_sorted_lists(sort_linked_list(less_head.next),sort_linked_list(equal_head.next), sort_linked_list(greater_head.next))def merge_sorted_lists(l1, l2, l3):dummy = ListNode(None)current = dummywhile l1 and l2 and l3:if l1.value < l2.value and l1.value < l3.value:current.next = l1l1 = l1.nextelif l2.value < l1.value and l2.value < l3.value:current.next = l2l2 = l2.nextelse:current.next = l3l3 = l3.nextcurrent = current.nextif l1:current.next = l1 elif l2:current.next = l2 else:current.next = l3 return dummy.next。
数据结构试卷(一)参考答案一、选择题(每题2分,共20分)1.A2.D3.D4.C5.C6.D7.D8.C9.D 10.A 二、填空题(每空1分,共26分)1. 正确性 易读性 强壮性 高效率2. O(n)3. 9 3 34. -1 3 4 X * + 2 Y * 3 / -5. 2n n-1 n+16. e 2e7. 有向无回路8. n(n-1)/2 n(n-1)9. (12,40) ( ) (74) (23,55,63) 10.增加111.O(log 2n) O(nlog 2n) 12.归并三、计算题(每题6分,共24分)1. 线性表为:(78,50,40,60,34,90)2. 邻接矩阵:⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡0111010101110111010101110邻接表如图11所示:图113. 用克鲁斯卡尔算法得到的最小生成树为: (1,2)3, (4,6)4, (1,3)5, (1,4)8, (2,5)10, (4,7)204. 见图12图124 4 4 4 4 2 2 25 552 2 8 84 352 83 4四、读算法(每题7分,共14分)1.(1)查询链表的尾结点(2)将第一个结点链接到链表的尾部,作为新的尾结点(3)返回的线性表为(a2,a3,…,a n,a1)2.递归地后序遍历链式存储的二叉树。
五、法填空(每空2分,共8 分)true BST->left BST->right六、编写算法(8分)int CountX(LNode* HL,ElemType x){ int i=0; LNode* p=HL;//i为计数器while(p!=NULL){ if (P->data==x) i++;p=p->next;}//while, 出循环时i中的值即为x结点个数return i;}//CountX数据结构试卷(二)参考答案一、选择题1.D2.B3.C4.A5.A6.C7.B8.C二、填空题1.构造一个好的HASH函数,确定解决冲突的方法2.stack.top++,stack.s[stack.top]=x3.有序4.O(n2),O(nlog2n)5.N0-1,2N0+N16.d/27.(31,38,54,56,75,80,55,63)8.(1,3,4,5,2),(1,3,2,4,5)三、应用题1.(22,40,45,48,80,78),(40,45,48,80,22,78)2.q->llink=p; q->rlink=p->rlink; p->rlink->llink=q; p->rlink=q;3.2,ASL=91*1+2*2+3*4+4*2)=25/94.树的链式存储结构略,二叉树略5.E={(1,3),(1,2),(3,5),(5,6),(6,4)}6.略四、算法设计题1.设有一组初始记录关键字序列(K1,K2,…,K n),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K i,右半部分的每个关键字均大于等于K i。
一、单选题(每题 2 分,共20分)1.对一个算法的评价,不包括如下(B )方面的内容。
A.健壮性和可读性B.并行性C.正确性D.时空复杂度2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3.对线性表,在下列哪种情况下应当采用链表表示?( )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35.AOV网是一种()。
A.有向图B.无向图C.无向无环图D.有向无环图6.采用开放定址法处理散列表的冲突时,其平均查找长度()。
A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同D.高于二分查找7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。
A.值B.函数C.指针D.引用8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的()。
A.行号B.列号C.元素值D.非零元素个数9.快速排序在最坏情况下的时间复杂度为()。
A.O(log2n) B.O(nlog2n)C.0(n) D.0(n2)10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A. O(n)B. O(1)C. O(log2n)D. O(n2)二、运算题(每题 6 分,共24分)1.数据结构是指数据及其相互之间的______________。
当结点之间存在M对N (M:N)的联系时,称这种结构为_____________________。
专升本⼗套-数据结构(试题及答案)数据结构试卷(⼀)⼀、单选题(每题2分,共20分)1.栈与队列得共同特点就是( )。
A、只允许在端点处插⼊与删除元素B、都就是先进后出C、都就是先进先出D、没有共同点2.⽤链接⽅式存储得队列,在进⾏插⼊运算时()、A、仅修改头指针B、头、尾指针都要修改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)存放在什么位置?脚注(10)表⽰⽤10进制表⽰。
A.688 B.678 C.692D.6965.树最适合⽤来表⽰()。
A、有序数据元素B、⽆序数据元素C、元素之间具有分⽀层次关系得数据D、元素之间⽆联系得数据6.⼆叉树得第k层得结点数最多为( )、A。
2k—1 B、2K+1 C、2K-1 D、 2k-17.若有18个元素得有序表存放在⼀维数组A[19]中,第⼀个元素放A[1]中,现进⾏⼆分查找,则查找A[3]得⽐较序列得下标依次为( )A、1,2,3 ??B、9,5,2,3C、9,5,3D、9,4,2,38.对n个记录得⽂件进⾏快速排序,所需要得辅助存储空间⼤致为A、O(1)B、O(n) C、 O(1og2n) D、 O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进⾏散列存储时,若选⽤H(K)=K %9作为散列函数,则散列地址为1得元素有()个,A。
1 B.2 C.3 D.410.设有6个结点得⽆向图,该图⾄少应有()条边才能确保就是⼀个连通图。
A、5B、6C、7 D、8⼆、填空题(每空1分,共26分)1.通常从四个⽅⾯评价算法得质量:_________、_________、_________与_________.2.⼀个算法得时间复杂度为(n3+n2log2n+14n)/n2,其数量级表⽰为________.3.假定⼀棵树得⼴义表表⽰为A(C,D(E,F,G),H(I,J)),则树中所含得结点数为__________个,树得深度为___________,树得度为_________。
数据结构试题及答案(10套)数据结构试题及答案(10套)根据您的需求,我为您准备了10套数据结构试题及答案。
每套试题包含以下几个部分:选择题、填空题、编程题及答案解析。
下面是试题的具体内容:第一套试题:选择题:1. 在数据结构中,什么是栈?A. 先进先出(FIFO)的数据结构B. 后进先出(LIFO)的数据结构C. 随机访问的数据结构D. 无序排列的数据结构2. 以下哪种操作与队列的特性不相符?A. 入队操作B. 出队操作C. 查找操作D. 获取队首元素填空题:1. ______ 是一种动态集合,支持插入、删除和查找等操作。
2. 在二叉搜索树中,中序遍历的结果是________。
编程题:实现一个栈的数据结构,并包含以下操作:- push(x):将元素 x 压入栈中- pop():删除栈顶的元素并返回该元素- top():获取栈顶元素的值- empty():检查栈是否为空答案解析:选择题:B、C填空题:1. 集合 2. 升序序列编程题:略第二套试题:选择题:1. 以下哪个数据结构是一种广度优先搜索的应用?A. 栈B. 队列C. 堆D. 链表2. 在链表中,如果要删除一个节点,只给出该节点的指针,那么需要通过什么方式完成删除操作?A. 直接删除该节点B. 指向该节点的前一个节点的指针C. 指向该节点的后一个节点的指针D. 无法完成删除操作填空题:1. 树是一种________的数据结构。
2. 二叉树每个节点最多有______个子节点。
编程题:实现一个队列的数据结构,并包含以下操作:- enqueue(x):将元素 x 入队- dequeue():删除队首的元素并返回该元素- peek():获取队首元素的值- is_empty():检查队列是否为空答案解析:选择题:B、B填空题:1. 分层组织 2. 2编程题:略(以下部分省略)通过以上的题目,您可以对数据结构的知识点进行综合练习和复习。
每套试题包含了不同难度和类型的题目,能够帮助您全面了解和掌握数据结构的概念和操作。
数据结构试卷(一) .... 错误 ! 未定义书签。
书签。
数据结构试卷(二) .... 错误 ! 未定义书签。
数据结构试卷(四)参考答案 错误 ! 未定义数据结构试卷(三) .... 错误 ! 未定义书签。
书签。
数据结构试卷(四) .... 错误 ! 未定义书签。
数据结构试卷(五)参考答案 错误 ! 未定义数据结构试卷(五) .... 错误 ! 未定义书签。
书签。
数据结构试卷(六) .... 错误 ! 未定义书签。
数据结构试卷(六)参考答案 错误 ! 未定义数据结构试卷(七) .... 错误 ! 未定义书签。
书签。
数据结构试卷(八) .... 错误 ! 未定义书签。
数据结构试卷(七)参考答案 错误 ! 未定义数据结构试卷(九) .... 错误 ! 未定义书签。
书签。
数据结构试卷(十) .... 错误 ! 未定义书签。
数据结构试卷(八)参考答案 错误 ! 未定义数据结构试卷(一)参考答案 错误 ! 未定义书签。
书签。
数据结构试卷(九)参考答案 错误 ! 未定义数据结构试卷(二)参考答案错误 ! 未定义书签。
书签。
数据结构试卷(十)参考答案 错误 ! 未定义数据结构试卷(三)参考答案错误 ! 未定义书签。
数据结构试卷(一)一、单选题(每题2 分,共 20 分) 栈和队列的共同特点是 ( A )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点1. 用链接方式存储的队列,在进行插入运算时( D ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改2. 以下数据结构中哪一个是非线性结构( D )A. 队列B. 栈C. 线性表D. 二叉树676 ,3. 设有一个二维数组A[m][ n],假设 A[0][0] 存放位置在 644(10),A[2][2] 存放位置在(10)每个元素占一个空间,问A[3][3] (10)存放在什么位置脚注 (10)表示用 10 进制表示( C )。
专升本⼗套数据结构试题及答案专升本⼗套数据结构试题及答案数据结构试卷(⼀)⼀、单选题(每题 2 分,共20分)1.栈和队列的共同特点是( )。
A.只允许在端点处插⼊和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.⽤链接⽅式存储的队列,在进⾏插⼊运算时( ).A. 仅修改头指针B. 头、尾指针都要修改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)存放在什么位置?脚注(10)表⽰⽤10进制表⽰。
A.688 B.678 C.692 D.6965.树最适合⽤来表⽰( )。
A.有序数据元素B.⽆序数据元素C.元素之间具有分⽀层次关系的数据D.元素之间⽆联系的数据6.⼆叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1D. 2k-17.若有18个元素的有序表存放在⼀维数组A[19]中,第⼀个元素放A[1]中,现进⾏⼆分查找,则查找A[3]的⽐较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的⽂件进⾏快速排序,所需要的辅助存储空间⼤致为A. O(1)B. O(n)C.O(1ogn) D. O(n2)29.对于线性表(7,34,55,25,64,46,20,10)进⾏散列存储时,若选⽤H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的⽆向图,该图⾄少应有( )条边才能确保是⼀个连通图。
A.5B.6C.7D.8⼆、填空题(每空1分,共26分)1.⼀般从四个⽅⾯评价算法的质量:_________、_________、_________和_________。
十套数据结构试题及答案1.请设计一个栈结构,满足以下要求:-支持常规的入栈和出栈操作。
-支持获取当前栈中最小元素的操作,并要求时间复杂度为O(1)。
答案:可以使用两个栈,一个用于存储数据,另一个用于维护当前栈中的最小值。
每次入栈时,比较要入栈的元素与当前栈中的最小值,将较小的值入最小栈。
出栈时,同时从数据栈和最小栈中出栈,保持栈的一致性。
2.请用链表实现一个队列结构,满足以下要求:-支持常规的入队和出队操作。
-支持获取队列中的最大值和最小值的操作,并要求时间复杂度为O(1)。
答案:使用双向链表实现队列,每个结点保存当前最大值和最小值,入队时更新队列相关结点的最大值和最小值,出队时删除队首结点,并更新队列最大值和最小值。
3. 设计一个LRU(Least Recently Used)缓存结构,要求如下:-缓存结构内存固定大小。
-当缓存结构满时,插入新的数据时需要剔除最近最少使用的数据。
答案:可以使用哈希表和双向链表来实现。
哈希表用于实现快速查找,双向链表用于保存数据的访问顺序。
当一些数据被访问时,根据哈希表快速定位到对应的结点,并将该结点移到链表头部。
当需要插入新数据时,如果缓存容量已满,则将链表尾部的结点剔除。
4.设计一个支持并发访问的并且具有线程安全性的哈希表结构。
答案:可以使用读写锁来保证线程安全性。
读操作时,多个线程可以同时读取,不会产生冲突;写操作时,需要获取写锁,保证同时只能有一个线程执行写操作。
5.实现一个拓扑排序算法,对有向无环图进行排序。
答案:可以使用DFS和栈结构来实现。
从任意一个未被访问的结点开始,递归地进行深度优先,并将访问完毕的结点入栈。
最终得到的栈中的结点顺序即为拓扑排序结果。
6.设计一个支持高效插入与删除的动态数组结构。
答案:可以使用动态平衡二叉树(例如AVL树)来实现。
插入与删除操作的时间复杂度为O(log n),并保持树的平衡性,避免树的高度过大。
7.设计一个支持高效查找的散列表结构。
十套数据结构试题及答案2第2章线性表练习题答案一、填空1. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动 n-i+1个元素。
2. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动n-i 个元素。
3. 在顺序表中访问任意一结点的时间复杂度均为O(1) ,因此,顺序表也称为随机存取的数据结构。
4. 在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的指示。
5在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度O (n)。
二、判断正误(×)1.链表的每个结点中都恰好包含一个指针。
答:错误。
链表中的结点可含多个指针域,分别存放多个指针。
例如,双向链表中的结点可以含有两个指针域,分别存放指向其直接前趋和直接后继结点的指针。
(×)2.链表的物理存储结构具有同链表一样的顺序。
错,链表的存储结构特点是无序,而链表的示意图有序。
(×)3.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。
错,链表的结点不会移动,只是指针内容改变。
(×)4.线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
错,混淆了逻辑结构与物理结构,链表也是线性表!且即使是顺序表,也能存放记录型数据。
(×)5.顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
错,正好说反了。
顺序表才适合随机存取,链表恰恰适于“顺藤摸瓜”(×)6.顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
错,前一半正确,但后一半说法错误,那是链式存储的优点。
顺序存储方式插入、删除运算效率较低,在表长为n的顺序表中,插入和删除一个数据元素,平均需移动表长一半个数的数据元素。
(×)7.线性表在物理存储空间中也一定是连续的。
错,线性表有两种存储方式,顺序存储和链式存储。
数据结构试卷(一)一、单选题(每题2分,共20分)1.栈与队列得共同特点就是( )。
A、只允许在端点处插入与删除元素B、都就是先进后出C、都就是先进先出D、没有共同点2.用链接方式存储得队列,在进行插入运算时()、A、仅修改头指针B、头、尾指针都要修改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)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692D.6965.树最适合用来表示()。
A、有序数据元素B、无序数据元素C、元素之间具有分支层次关系得数据D、元素之间无联系得数据6.二叉树得第k层得结点数最多为( )、A。
2k—1 B、2K+1 C、2K-1 D、 2k-17.若有18个元素得有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]得比较序列得下标依次为( )A、1,2,3 ﻩﻩB、9,5,2,3C、9,5,3 ﻩﻩﻩD、9,4,2,38.对n个记录得文件进行快速排序,所需要得辅助存储空间大致为A、O(1)B、O(n) C、 O(1og2n) D、 O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1得元素有()个,A。
1 B.2 C.3 D.410.设有6个结点得无向图,该图至少应有()条边才能确保就是一个连通图。
A、5B、6C、7 D、8二、填空题(每空1分,共26分)1.通常从四个方面评价算法得质量:_________、_________、_________与_________.2.一个算法得时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________.3.假定一棵树得广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含得结点数为__________个,树得深度为___________,树得度为_________。