青岛科技大学信息工程十套数据结构试题
国开期末考试《数据结构与算法》机考试题及答案(第10套)
国开期末考试《数据结构与算法》机考试题及答案(第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.栈和队列的共同特点是( a )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时(d ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( d )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
cA.688 B.678 C.692 D.6965.树最适合用来表示( c )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 +1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( d )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为cA. 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的元素有( d )个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( a )条边才能确保是一个连通图。
二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_正确性_、_易读性_、_强壮性_和_高效率__。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为O(n)3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为_9__个,树的深度为__3__,树的度为_3__。
青岛科技大学考研历年真题之考研历年真题之数据结构2007 2008,2012年考研真题
三、应用题(总分 40 分)
1、 (4 分)若有 100 个学生,每个学生有学号,姓名,平均成绩,采用什么样的数据结构最 方便,写出这些结构? 2、 回答问题(8 分,每小题 2 分) (1)在数据结构课程中,数据的逻辑结构,数据的存储结构及数据的运算之间存在着怎样 的关系? (2)若逻辑结构相同但存储结构不同,则为不同的数据结构。这样的说法对吗?举例说明 之。 (3)在给定的逻辑结构及其存储表示上可以定义不同的运算集合,从而得到不同的数据结 构。这样说法对吗?举例说明之。 (4)评价各种不同数据结构的标准是什么? 3、 (8 分) 数据类型和抽象数据类型是如何定义的。二者有何相同和不同之处,抽象数据类 型的主要特点是什么?使用抽象数据类型的主要好处是什么? 4、 (5 分) 说明在线性表的链式存储结构中,头指针与头结点之间的根本区别;头结点与首 元结点的关系。 5、 (10 分)利用两个栈 sl,s2 模拟一个队列时,如何用栈的运算实现队列的插入,删除以及 判队空运算。请简述这些运算的算法思想。 6、 (5 分)一个 n╳n 的对称矩阵,如果以行或列为主序存入内存,则其容量为多少?
一、 选择题(总分:20 分,每题 2 分)
1、在一个以 h 为头的单循环链中,p 指针指向链尾的条件是( ) 。 A. p->next=h B. p->next=NIL C. p->next->next=h D. p->data=-1 2、在双向链表存储结构中,删除 p 所指的结点时须修改指针( ) 。 A.p->prior ->next=p->next; p->next ->prior=p->prior; B.p->prior=p->prior ->prior; p->prior ->next=p; C.p->next ->prior=p; p->next=p->next ->next; D.p->next=p->prior ->prior; p->prior=p->next ->next; 3、静态链表中指针表示的是( ) 。 A. 内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址 4、 链表不具有的特点是( ) 。 A.插入、删除不需要移动元素 B.可随机访问任一元素 C.不必事先估计存储空间 D.所需空间与线性长度成正比 5、 设有三个元素 X, Y, Z 顺序进栈 (进的过程中允许出栈) , 下列得不到的出栈排列是( )。 A.XYZ B. YZX C. ZXY D. ZYX 6、串的长度是指( ) 。 A.串中所含不同字母的个数 B.串中所含字符的个数 C.串中所含不同字符的个数 D.串中所含非空格字符的个数 7、数组 A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为 1000 的 内存单元中,则元素 A[5,5]的地址是( )。 A. 1175 B. 1180 C. 1205 D. 1210 8、具有 10 个叶结点的二叉树中有( )个度为 2 的结点。 A.8 B.9 C.10 D.ll 9、要连通具有 n 个顶点的有向图,至少需要( )条边。 A.n-l B.n C.n+l D.2n 10、设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链 地址法构造散列表,散列函数为 H(key)=key MOD 13,散列地址为 1 的链中有( )个记 录。 A.1 B70 分)
青岛科技大学10级数据库复习
自己整理的,不完整,仅供参考!!!第一章1.试述数据、数据库、数据库管理系统、数据库系统的概念。
数据:描述事物的符号记录数据库(DB:DataBase):是长期储存在计算机内的相互关联的数据的集合,它用综合的方法组织数据,具有较小的数据冗余,可供多个用户共享,具有较高的数据独立性,具有安全控制机制,能够保证数据的一致性和完整性。
数据库管理系统(Database Management System,简称DBMS):管理数据库的系统软件,是数据库系统的核心。
位于用户与操作系统之间的数据管理软件。
数据库系统:是一个人-机系统:包括软件、硬件、人。
2.数据库管理系统的主要功能有哪些?A.数据定义功能(Data Definition)B.数据操纵功能(Data Manipulation)C.数据库的运行管理D.数据库的建立和维护功能(实用程序)3.数据库管理技术经历了哪几个发展阶段?请对比各阶段的数据独立性。
(1)人工管理阶段特点:数据无法长期保存数据由应用程序管理数据不具有独立性和共享性;(2)文件系统阶段特点:数据可以长期保存;数据由文件系统管理;数据冗余度较大;程序对数据依赖性较强;(3)、数据库系统阶段数据结构化并与程序分离;数据集中存储,高度共享;数据冗余度小,具有数据一致性和完整性控制规则。
4.简述数据库的三级模式结构。
模式(Schema)模式(也称逻辑模式)数据库中全体数据的逻辑结构和特征的描述所有用户的公共数据视图,综合了所有用户的需求一个数据库只有一个模式模式的地位:是数据库系统模式结构的中间层与数据的物理存储细节和硬件环境无关与具体的应用程序、开发工具及高级程序设计语言无关外模式(External Schema)数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述数据库用户的数据视图,是与某一应用有关的数据的逻辑表示内模式(Internal Schema)是数据物理结构和存储方式的描述是数据在数据库内部的表示方式记录的存储方式(顺序存储,按照B树结构存储)索引的组织方式数据是否压缩存储数据是否加密一个数据库只有一个内模式5.什么是数据的物理独立性和数据的逻辑独立性?为什么数据库系统具有数据与程序的独立性?物理独立性用户的应用程序与数据库中数据相互独立。
青岛科技大学数据结构考研真题试题2008、2012、2016、2017年
1
2
3
4
5
6
7
8 9 10
6、(6 分)阅读下列算法,并回答下列问题: (1)、该算法采用何种策略进行排序? (2)、写出用此种排序方法对关键字序列{49,38,65,97,76,13,27}排序的过程。 void Sort ( SqList &L ) {
for ( i=2; i<=L.length; ++i ) if (L.r[i].key < L.r[i-1].key)
17、n 个顶点的强连通图至少有(
)条边。
A.n
B. n-1
C. n+1
D. n(n-1)
18、静态链表中指针表示的是(
)。
A. 内存地址
B.数组下标 C.下一元素地址
D.左、右孩子地址
19、若长度为 n 的线性表采用顺序存储结构,在其第 i 个位置插入一个新元素的算法的时间
复杂度为(
)(1<=i<=n+1)。
1、若一个算法中的语句频度之和为 T(n)=3720n+4nlogn,则算法的时间复杂度为________;
而下列程序段的时间复杂性的量级则为
。
for(i=0;i<n;i++)
for(j=0;j<m;j++)
t=t+1;
2、在一个不带有头结点的非空单链表中,其结点形式为 ,若要在指针 q data next 所指结点之后插入一个 s指向的结点,则需执行下列语句序
成树中,从顶点 1 到 4 的路径为
。
20
1
11 2 5
9
10
6 10
14 6
2022年青岛科技大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年青岛科技大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、将线性表的数据元素进行扩充,允许带结构的线性表是()。
A.串B.树C.广义表D.栈2、无向图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)},对该图进行深度优先遍历,得到的顶点序列正确的是()。
A.a,b,e,c,d,fB.a,c,f,e,b,dC.a,e,b,c,f, dD.a,e,d,f,c,b3、若线性表最常用的操作是存取第i个元素及其前驱和后继元素的值,为节省时间应采用的存储方式()。
A.单链表B.双向链表C.单循环链表D.顺序表4、向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()。
A.h->next=sB.s->next=hC.s->next=h;h->next=sD.s->next=h-next;h->next=s5、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7}, E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>, <V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>},G的拓扑序列是()。
A.V1,V3,V4,V6,V2,V5,V7B.V1,V3,V2,V6,V4,V5,V7C.V1,V3,V5,V2,V6,V7D.V1,V2,V5,V3,V4,V6,V76、下列选项中,不能构成折半查找中关键字比较序列的是()。
A.500,200,450,180 B.500,450,200,180C.180,500,200,450 D.180,200,500,4507、下列叙述中,不符合m阶B树定义要求的是()。
青岛科技大学信息工程微机原理习题资料
一、填空题1、十进制数25转换为二进制数是11001B ,转换为八进制数是31O ,转换为十六进制数是19H 。
2、十进制数-68的原码是11000100 ,反码是10111011,补码是10111100 。
(用八位二进制编码表示)。
3、十进制数208.625转换成16进制数为 D0.AH 。
4、十进制负数-38原码是10100110 ,反码是11011001 ,补码是11011010。
(用八位二进制编码表示)。
5、十进制数42.625转换为二进制数是 101010.101B ,转换为八进制数是 52.5O ,转换为十六进制数是 2A.AH 。
7、计算机存储信息的最小单位是二进制的位,1个字节等于8个二进制位,1KB等于1024个字节。
8、三态输出电路可以有3种工作状态,即0、1和高阻态。
9、程序计数器用于存储计算机下一条要执行的指令的地址,可以从0开始计数(每次加1或加一个固定的数),以支持程序的顺序执行;也可以将外部数据装入其中,以支持程序跳转操作。
10、CPU的控制器通常由三个部分组成,即环形计数器、指令译码器和控制矩阵。
11、8086CPU的数据总线是16位的,8088CPU的数据总线是8位的。
12、8086CPU的指令队列为 6 个字节,8088CPU的指令队列为4 个字节。
13、8086CPU的4个段地址寄存器分别是CS、DS、ES、SS。
14、8086CPU从功能上可分为两部分,即总线接口部件BIU和执行部件EU。
15、8086/8088CPU设有_6_个状态标志位,_3_个控制标志位;当执行比较指令时,如果运算结果为零,则标志位_ZF_置1;如果运算结果的最高位为1,则标志位_SF_置1。
16、存储器是计算机中用于存储程序和数据的装置。
17、n位地址码可以表示 2n个地址。
18、8086/8088系统中存储器按字节编址,可寻址的存储器空间为1MB 。
8086/8088系统把存储空间分成若干个逻辑段,每个逻辑段容量≤64KB 。
青科成人教育《数据结构试卷一》期末考试试题及参考答案
选择题1、B 2、B 3、D 4、A 5、D 6、B 7、D 8、D 9、B 10、A1.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。
A.数据具有同一特点B.不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致C.每个数据元素都一样D.数据元素所包含的数据项的个数要相等2.若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在()种情况。
A.5,4,3,2,1 B.4,3,1,2,5 C.2,1,5,4,3 D.2,3,5,4,13.设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是()。
A.2 B.6 C.4 D. 34.算法是指()。
A. 解决问题的有限运算序列B. 解决问题的计算方法C. 计算机程序D. 排序算法5.一棵深度为K的完全二叉树至少有( )结点。
A.2k+1B. 2k+1C. 2k-1 -1D. 2k-16.在下列存储形式中,()不是树的存储形式?A.双亲表示法 B.顺序存储表示法 C.孩子兄弟表示法 D.孩子链表表示法7.对于一棵具有n个结点的树,分支个数为()。
A.n B.不确定 C.n+1 D. n-18.数据结构的存储结构可以分为()类。
A.初等结构、构造型结构 B.顺序结构、链式结构C.动态结构、静态结构 D.线性结构、树形结构、图形结构、集合9.若某线性表最常用的操作是存取任意指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A.双链表 B.顺序表 C.带头结点的双循环链表 D.单循环链表10.完全二叉树的结点个数11,则它的叶子结点个数为()。
A.6 B.3 C.4 D.5二、填空题1.线性结构、树形结构、图形结构和集合2.数据、后继的地址3.20044.n-15.(n+1)/2。
数据结构试题及答案(十套)
一、单选题(每题 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)的联系时,称这种结构为_____________________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构试卷(一)一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( a )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时(d ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( d )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
cA.688 B.678 C.692 D.6965.树最适合用来表示( c )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( d )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为cA. 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的元素有( d )个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( a )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_正确性_、_易读性_、_强壮性_和_高效率__。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为O(n)3.假定一棵树的广义表表示为A(C,D(E,F,G),H(I,J)),则树中所含的结点数为_9__个,树的深度为__3__,树的度为_3__。
4.后缀算式9 2 3 +- 10 2 / -的值为_-1_。
中缀算式(3+4X)-2Y/3对应的后缀算式为__3 4 X* + 2 Y * 3 / -__。
5.若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指针。
在这种存储结构中,n个结点的二叉树共有__2n个指针域,其中有_n-1_个指针域是存放了地址,有__n+1___个指针是空指针。
6.对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别有_e_个和_2e_个。
7.AOV网是一种_有向无回路__的图。
8.在一个具有n个顶点的无向完全图中,包含有_ n(n-1)/2_条边,在一个具有n个顶点的有向完全图中,包含有_n(n-1)_条边。
9.假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为____________________________、___________________、_______________________和__________________________。
10.向一棵B_树插入元素的过程中,若最终引起树根结点的分裂,则新树比原树的高度___________。
11.在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为________,整个堆排序过程的时间复杂度为________。
12.在快速排序、堆排序、归并排序中,_________排序是稳定的。
三、计算题(每题6 分,共24分)1.在如下数组A中链接存储了一个线性表,表头指针为A [0].next,试画出该线性表。
2.3.已知一个图的顶点集V和边集E分别为:V={1,2,3,4,5,6,7};E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。
4.画出向小根堆中加入数据4, 2, 5, 8, 3时,每加入一个数据后堆的变化。
四、阅读算法(每题7分,共14分)1.LinkList mynote(LinkList L){//L是不带头结点的单链表的头指针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, …,a n),写出算法执行后的返回值所表示的线性表。
2.void ABC(BTNode * BT){if BT {ABC (BT->left);ABC (BT->right);cout<<BT->data<<' ';}}该算法的功能是:五、算法填空(共8分)二叉搜索树的查找——递归算法:bool Find(BTreeNode* BST,ElemType& item){if (BST==NULL)return false; //查找失败else {if (item==BST->data){item=BST->data;//查找成功return ___________;}else if(item<BST->data)return Find(______________,item);else return Find(_______________,item);}//if}六、编写算法(共8分)统计出单链表HL中结点的值等于给定值X的结点数。
int CountX(LNode* HL,ElemType x)数据结构试卷(二)一、选择题(24分)1.下面关于线性表的叙述错误的是()。
(A) 线性表采用顺序存储必须占用一片连续的存储空间(B) 线性表采用链式存储不必占用一片连续的存储空间(C) 线性表采用链式存储便于插入和删除操作的实现(D) 线性表采用顺序存储便于插入和删除操作的实现2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。
(A) 2m-1 (B) 2m (C) 2m+1 (D) 4m3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。
(A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。
(A) BADC (B) BCDA (C) CDAB (D) CBDA5.设某完全无向图中有n个顶点,则该完全无向图中有()条边。
(A) n(n-1)/2 (B) n(n-1) (C) n2(D) n2-16.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。
(A) 9 (B) 10 (C) 11 (D) 127.设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点。
(A) n-1 (B) n (C) n+1 (D) 2n-18.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。
(A) 2,3,5,8,6 (B) 3,2,5,8,6(C) 3,2,5,6,8 (D) 2,3,6,5,8二、填空题(24分)1.为了能有效地应用HASH查找技术,必须解决的两个问题是____________________和__________________________。
2.下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句。
typedef struct {int s[100]; int top;} sqstack;void push(sqstack &stack,int x){if (stack.top==m-1) printf(“overflow”);else {____________________;_________________;}}3.中序遍历二叉排序树所得到的序列是___________序列(填有序或无序)。
4.快速排序的最坏时间复杂度为___________,平均时间复杂度为__________。
5.设某棵二叉树中度数为0的结点数为N0,度数为1的结点数为N1,则该二叉树中度数为2的结点数为_________;若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有_______个空指针域。
6.设某无向图中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=_______。
7.设一组初始记录关键字序列为(55,63,44,38,75,80,31,56),则利用筛选法建立的初始堆为___________________________。
8.已知一有向图的邻接表存储结构如下:从顶点1出发,DFS遍历的输出序列是,BFS遍历的输出序列是三、应用题(36分)1.设一组初始记录关键字序列为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果。
2.设指针变量p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A 的后面插入结点B的操作序列(设双向链表中结点的两个指针域分别为llink和rlink)。
3.设一组有序的记录关键字序列为(13,18,24,35,47,50,62,83,90),查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。
4.设一棵树T中边的集合为{(A,B),(A,C),(A,D),(B,E),(C,F),(C,G)},要求用孩子兄弟表示法(二叉链表)表示出该树的存储结构并将该树转化成对应的二叉树。
5.设有无向图G,要求给出用普里姆算法构造最小生成树所走过的边的集合。
6.设有一组初始记录关键字为(45,80,48,40,22,78),要求构造一棵二叉排序树并给出构造过程。
四、算法设计题(16分)1.设有一组初始记录关键字序列(K1,K2,…,K n),要求设计一个算法能够在O(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K i,右半部分的每个关键字均大于等于K i。