数据结构(含答案)_第1页
数据结构(含答案)_第2页
数据结构(含答案)_第3页
数据结构(含答案)_第4页
数据结构(含答案)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、数据结构综合练习一、选择题 1数据的存储结构包括顺序、链接、散列和( )4种基本类型。 A索引 B数组 C集合 D向量 2下面程序的时间复杂性的量级为()。 int i=0,s1=0,s2=0; while(i+<n) if (i%2) s1+=i; else s2+=i; A.O(1) B.O(1bn) C.O(n) D.O(2n) 3下面程序段的时间复杂度为( )。 for(int i=0;i<m;i+) for(int j=0;j<n;j+) aij=i*j; A.O(m2) B.O(n2) C.O(m+n) D.O(m*n) 4在一个长度为n的顺序存储结构的线性表中,

2、向第i个元素(1 in+1)位置插入一个元素时,需要从后向前依次后移( )个元素。 A.n-i B.n-i+l C.n-i-l D.i 5在一个长度为n的顺序存储结构的线性表中,删除第i个元素(1in+1)时,需要从前向后依次后移( )个元素。 A.n-i B.n-i+l C.n-i-l D.i 6在一个长度为n的线性表中,删除值为x的元素时需要比较元素 和移动元素的总次数为()。 A.(n+1)/2 B.n/2 C.n D.n+1 7在一个顺序表中的任何位置插入一个元素的时间复杂度为()。 A. O(n) B. O(n/2) C. O(1) D. O(n2) 8. 线性表的链式存储比顺序存储

3、更有利于进行()操作。 A.查找 B.表尾插入和删除 C.按值插入和删除 D.表头的插入和删除 9. 线性表的顺序存储比链式存储更有利于进行()操作。 A.查找 B.表尾插入和删除 C.按值插入和删除 D.表头的插入和删除 10. 在一个表头指针为ph的单链表中,若要向表头插入一个由指针p指向的结点,则应执行( )操作。 A. ph=p; p->next=ph; B. p->next=ph; ph=p; C. p->next=ph; p=ph; D. p->next=ph->next; ph->next=p; 11. 在一个表头指针为ph的单链表中,若要在指

4、针q所指结点的后面插入一个由指针p所指向的结点,则执行()操作。 A. q->next=p->next; p->next=q; B. p->next=q->next; q=p; C. q->next=p->next; p->next=q; D. p->next=q->next; q->next=p; 12.在一个单链表HL中,若要删除由指针q所指向结点的后继结点(若 存在的话),则执行( )操作。 A. p=q->next; p->next=q->next; B. p=q->next; q->nex

5、t=p; C. p=q->next; q->next=p->next; D. q->next=q->next->next; q->next=q; 13.栈的插入和删除操作在( )进行。 A. 栈顶 B. 栈底C. 任意位置D. 指定位置 14.若让元素1,2,3,4依次进栈,则出栈次序不可能出现( )的 情况。 A.3,2,1,4 B.2,1,4,3 C.4,3,2,1 D.1,4,2,3. 15. 假定一个顺序循环队列的队首和队尾指针分别用f和r表示,则 判断队空的条件为()。 A.f+1=r B.r+1=f C.f=0 D.f=r 16. 假定一个

6、顺序循环队列存储于数组aN,其队首和队尾指针分别 用f和r表示,则判断队满的条件为()。 A.(r-1)%N=f B.(r+1)%N=f C.(f-1)%N=r D.(f+1)%N=r 17. 二维数组A12,10采用行优先存储,每个数据元素占用4个存储 单元,该数组的首地址(A0,0的地址)为1200,则A6,5的 地址为()。 A.1400 B.1404 C.1372 D.1460 18.在一棵具有n个结点的二叉树中,所有结点的空子树个数等于()。 A.n B.n-1 C.n+1 D.2n 19.有如图1所示的一棵二叉树,则该二叉树的中序遍历序列为()。 A. ABCDEFG B. CDB

7、GFEA C. CBDAEGF D. ABECDFG 20.有如图1所示的一棵二叉树,则该二叉树的先序遍历序列为()。 A.ABCDEFG B.CDBGFEA C.CBDAEGF D.ABECDFG 21.有如图1所示的一棵二叉树,则该二叉树的后序便利序列为()。 A.ABCDEFG B.CDBGFEA C.CBDAEGF D.ABECDFG 22.利用n个值生成的哈夫曼树中共有()个结点。 A.n B.n+1 C.2n D.2n-1 23.利用3,6,8,12这4个值作为叶子结点的权,生成一棵哈夫曼树,该树的带权路径长度为()。 A.55 B.29 C.58 D.38 24.在一个具有n个顶

8、点的无向图中,若具有e条边,则所有顶点的度数为()。 A.n B.e C.n+e D.2e 25.在一个具有n个顶点和e条边的无向图的邻接矩阵中,表示边存在的元素(又称为有效元素)的个数为()。 A.n B.ne C.e D.2e 26.若一个图的边集为(A,B)(A,C)(B,D)(C,F)(D,E)(D,F),则从顶点A开始对该图进行深度优先搜索,得到的顶点序列可能为()。 A. ABCFDE B. ACFDEB C. ABDCFE D. ABDFEC 27.若一个图的边集为(A,B)(A,C)(B,D)(C,F)(D,E)(D,F),则从顶点A开始对该图进行广度优先搜索,得到的顶点序列可

9、能为()。 A.ABCDEF B.ABCFDE C.ABDCEF D.ACBFDE 28.对于顺序存储的有序表(5,12,20,26,37,42,46,50,64), 若采用二分查找,则查找元素26的查找长度为()。 A.2 B.3 C.4 D.5 29.若根据查找表(23,44,36,48,52,73,64,58)建立线性哈希表,采用H(K)=K%13计算哈希地址,则元素64的哈希地址为()。 A.4 B.8 C.12 D.13 30.若根据查找表(23,44,36,48,52,73,64,58)建立线形哈希表,采用H(K)=K%13计算哈希地址,则哈希地址为3的元素个数为()。A.1 B.

10、2 C.3 D.4 答案为031.若一个元素序列基本有序,则选用()方法较快。 A.直接插入排序 B.简单选择排序 C.堆排序 D.快速排序二填空题 1.数据的逻辑结构可分为_ _和_ _两大类。线性;非线性2.数据的存储结构被分为_,_,_和_4种。 顺序;链式;索引;散列存储结构3.一种数据结构的元素集合K和它的二元关系R为:K=a,b,c,d,e,f,g,hR=<a,b>,<b,c>,<c,d>,<d,e>,<e,f>,<f,g>,<g,h> 则该数据结构具有_结构。 线性4.一种数据结构的元素集合K和它

11、的二元关系R为: K=a,b,c,d,e,f,g,h R=<d,b>,<d,g>,<b,a>,<b,c>,<g,e>,<g,h>,<e,f>则该数据 结构具有_结构。 非线性5.线性表的两种存储结构分别为_和_。 顺序;链式6.在一个单链表中删除指针p所指向结点的后继结点时,需要把_ 的值赋给p->next指针域。 .p->next->next7.栈又称为_表,队列又称为_表。 先进后出;先进先出8.假定一个链栈的栈顶指针为top,每个结点包含值域data和指针域next,当p所指向的结点入栈

12、时,则首先执行_操作,然后执行_操作。 p->next=top;top=pABCE图 2DGIHF9.队列的插入操作在_进行,删除操作在_进行。 队尾;对头10.在一棵二叉树中,假定双分支结点数为5个, 单分支结点数为6个,则叶子结点数为_。 611.对于一棵二叉树,若一个结点的编号i,若它的左孩子结点存在, 则其编号为_,若右孩子结点存在,则其编号为_,若双亲结点存在,则其编号为_。 2i;2i+1;i/212.一个森林转换成二叉树后如图1.9所示,则该森林中包含_棵树。313.若由3,6,8,12,10作为叶子结点的值生成一棵哈夫曼树,则该树的深度为_,带权路径长度为_。 4;871

13、4.一种数据结构的元素集合K和它的二元关系R为: K=1,2,3,4,5,6 R=(1,2)(2,3)(2,4)(3,4)(3,5)(3,6)(4,5)(4,6) 则该数据结构具有_数据结构。 图状15.假定对线性表(38,25,74,52,48),进行散列存储,采用H(K)=K%7作为哈希函数,采用线性探测再散列法处理冲突,则在建立哈希表过程中,将会碰到_次冲突,平均查找长度为_。 5;216.若对一组记录(46,79,56,38,40,80,35,50,74)进行直接插入排序,当把第8个记录插入到前面已排序的有序表时,为寻找插入位置需比较_次。 4三、简答题 1. 已知一棵二叉树的中序遍历

14、序列为CDBAEGF,先序遍历序列为 ABCDEFG,试问能不能唯一确定一棵二叉树?若能,画出该二叉树。若给定先序遍历序列和后序遍历序列,能否唯一确定? 18.(1)由中序遍历序列和先序遍历序列,或中序遍历序列和后序遍历序列,可以唯一确定一颗二叉树。 由先序序列知,根结点最先被访问,就可确定根结点为A,而又由中序序列得知一棵树的根结点是其左, 右子树的分隔点,从而可确定以A 为根的左子树的结点为B,C,D,右子树的结点为E,F,G。重复进行就可得到二叉树。 (2)由先序遍历序列和后序遍历序列不能唯一确定一棵二叉树。因为两种遍历方法只能确定根结点,而分不清左右子树。2.将图1.12所示的树转换成

15、二叉树。 3.试分别画出具有3个结点的树和3 个结点的二叉树的所有不同形态。 树的状态如图1.21 所示. 3 个结点的二叉树的状态如图1.22 所示4.假定用于通信的电文由8个字母组成,分别是A,B,C,D,E,F, G,和H,各字母在电文中出现的 概率为:5%,25%,4%,7%,9%,12%,30%,8%,试为8个字母设计哈夫曼编码。 5.给出一组关键字(19,01,26,92,87,11,43,87,21),进行冒泡排序,列出每一遍排序后关键字的排列次序,并统计每遍排序进行的关键字比较次数。 初始关键字序列为: (19,01,26,92,87,11,43,87,21) 第一遍排序比较8

16、次,交换6次后成为: (01,19,26,87,11,43,87,21,92) 第二遍排序比较7次,交换3次后成为: (01,19,26,11,43,87,21,87,92) 第三遍排序比较6次,交换2次后成为: (01,19,11,26,43,21,87,87,92) 第四遍排序比较5次,交换2次后成为: (01,11,19,26,21,43,87,87,92) 第五遍排序比较4次,交换1次后成为:(01,11,19,21,26,43,87,87,92) 第六遍排序比较3次,交换0次。排序完毕。 6.已知一个顺序存储的有序表为(15,26,34,39,45,56,58,63,74,6),试画出对应的二分查找判定树,求出其平均查找长度。 折半查找判定树如图131所示。 平均查找长度:ASL=(1+2×23×44×3)/10=2.97. 设有一组关键字

温馨提示

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

评论

0/150

提交评论