数据结构-Python语言描述试卷(三)附答案_第1页
数据结构-Python语言描述试卷(三)附答案_第2页
数据结构-Python语言描述试卷(三)附答案_第3页
数据结构-Python语言描述试卷(三)附答案_第4页
数据结构-Python语言描述试卷(三)附答案_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构试卷(三)一、选择题(每题2分,共20分)1.设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03,07>,<03,08>,<03,09>},则数据结构A是(B)。A.线性结构B.树形结构C.物理结构D.图形结构2.下面程序的时间复杂度为(B)。

1

i=1

2

s=0

3

whilei<=n:

4

i+=1

5

t=1

6

forjinrange(1,i):

7

t=t*j

8

s=s+tA.O(n)B.O(n2)C.O(n3)D.O(n4)3.设指针变量p指向单链表中的结点A,若删除单链表中的结点A,则需要修改指针的操作序列为(A)。A.q=p.next;p.data=q.data;p.next=q.next;B.q=p.next;q.data=p.data;p.next=q.next;C.q=p.next;p.next=q.next;D.q=p.next;p.data=q.data;4.设有n个待排序的记录关键字,在堆排序中需要(A)个辅助记录单元。A.1B.nC.nlog2nD.n25.设一组记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为(A)。A.10,15,14,18,20,36,40,21B.10,15,14,18,20,40,36,21C.10,15,14,20,18,40,36,21D.15,10,14,18,20,36,40,216.设二叉排序树中有n个结点,则二叉排序树的平均查找长度为(B)。A.O(1)B.O(log2n)C.O(n)D.O(n2)7.设无向图G中有n个顶点、e条边,则其对应的邻接表中的表头结点和表结点的个数分别为(D)。A.n、eB.e、nC.2n、eD.n、2e8.设某强连通图中有n个顶点,则该强连通图中至少有(C)条边。A.n(n-1)B.n+1C.nD.n(n+1)9.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列(B)方法可以达到此目的。A.快速排序B.堆排序C.归并排序D.插入排序10.下列4种排序中(D)的空间复杂度最大。A.插入排序B.冒泡排序C.堆排序D.归并排序二、填空题(每空1分,共20分)1.数据的物理结构主要包括顺序存储结构和链式存储结构两种情况。2.设一棵完全二叉树中有500个结点,则该二叉树的深度为____9_____;若用二叉链表作为该完全二叉树的存储结构,则共有_____501____个空指针域。3.设输入序列为(1,2,3),则经过栈的作用后可以得到___5______种不同的输出序列。4.设有向图G用邻接矩阵A[n][n]作为存储结构,则该邻接矩阵中第i行上的所有元素之和等于顶点i的_____出度____,第i列上的所有元素之和等于顶点i的___入度______。5.设哈夫曼树中共有n个结点,则该哈夫曼树中有____0_____个度数为1的结点。6.设有向图G中有n个顶点、e条有向边,所有的顶点入度数之和为d,则e和d的关系为____e=d_____。7.____中序_____遍历二叉排序树中的结点可以得到一个递增的关键字序列(填先序、中序或后序)。8.设查找表中有100个元素,如果用二分查找方法查找数据元素X,则最多需要比较_____7____次就可以断定数据元素X是否在查找表中。9.不论是顺序存储结构的栈还是链式存储结构的栈,其入栈和出栈操作的时间复杂度均为___O(1)______。10.设有n个结点的完全二叉树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点的双亲结点的编号为___i/2(向下取整)______,右孩子结点的编号为___2*i+1______。11.设一组初始记录关键字为(72,73,71,23,94,16,5),则以记录关键字72为基准的一趟快速排序的结果为___5167123729473______。12.设有向图G中的有向边的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},则该图的一种拓扑序列为___1423______。13.下列算法实现在顺序散列表中查找值为x的关键字的功能,请在下画线处填上正确的语句。

1

classrecord(object):

2

def__init__(self,key,others):

3

self.key=key

4

self.others=others

5

6

defhashSqSearch(hashTable,k):

7

i=j=k%P

8

whilehashTable[j].key!=kandhashTable[j].flag!=0:

9

j=___j+1___%m

10

ifi==j:

11

return-1

12

if_hashtable[j].key==__k___:

13

returnj

14

elsereturn-114.下列算法实现在二叉排序树上查找关键值k的功能,请在下画线处填上正确的语句。

1

defFind(BST,k):

2

#BST是搜索二叉树的结点,k是查找的元素

3

ifBSTisNone:

4

returnfalse#查找失败

5

ifk==BST.data:

6

k=BST.data#查找成功

7

return_true_____

8

elifitem<BST.data:

9

returnFind(__BST.lchild____,k)

10

else:

11

returnFind(__BST.rchild____,k)三、计算题(每题10分,共30分)1.已知二叉树的前序遍历序列是AEFBGCDHIKJ、中序遍历序列是EFAGBCHKIJD,画出此二叉树,并画出它的后序线索二叉树。2.已知待散列的线性表为(36,15,40,63,22),散列用的一维地址空间为[0..6],假定选用的散列函数是H(K)=Kmod7,若发生冲突采用线性探查法处理,试计算以下问题:(1)计算出每一个元素的散列地址并在图A.5中填写出散列表。图A.5填写散列表01234566336152240(2)求出在查找每一个元素概率相等情况下的平均查找长度。(1+2+1+1+3)/5=1.6。3.已知序列(10,18,4,3,6,12,1,9,18,8),请用快速排序写出每一趟排序的结果。第一趟排序结果:9436110121818第二趟排序结果:1436910121818第三趟排序结果:1436910121818第四趟排序结果:1346910121818四、算法设计题(每题15分,共30分)1.设计在单链表中删除值相同的多余结点的算法。class

Node:

def

__init__(self,

data=None,

nxt=None):

self.data

=

data

self.next

=

nxt

def

delete_same_node(node):

p

=

node

if

p

is

None:

return

elif

p.next

is

None:

return

else:

q

=

node.next

while

q!=None:

if

p.data==q.data:

p.next

=

q.next

p

=

q

q

=

q.next

else:

p

=

p.next

q

=

q.next

return

2.设计一个求结点x在二叉树中的双亲结点的算法。class

TreeNode:

def

__init__(self,

data=None,

lchild=None,

rchild=None):

self.data

=

data

self.lchild

=

lchild

self.rchild

=

rchild

def

find_parent(root,

target):

if

root

is

None:

return

None

elif

root.lchild

is

target

or

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论