数据结构习题_第1页
数据结构习题_第2页
数据结构习题_第3页
数据结构习题_第4页
数据结构习题_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、数据结构习题第一章 绪论一、 单选或填空题1. 下列程序段中S语句的执行频度为 。for(i0;in;i+ )for(j0;ji;j+ ) S;2. 下列算法的时间复杂度是()。for(i0;in;i+ )cii;3. 算法的时间复杂度可表示为 O(1)、线性阶 、平方阶O(n2)、对数阶O(logn)和指数阶O(2n)等。4 以下关于数据结构的基本概念中,叙述正确的是 A) 数据元素是数据不可分割的最小单位。B) 数据是数据对象的子集。C) 数据元素之间的关系在计算机中可用顺序映像和非顺序映像两种不同的方法表示。D) 数据结构在计算机中的表示又称为逻辑结构。5. 在数据结构中,数据的逻辑结构

2、包括()。A) 线性结构和非线性结构 B) 逻辑结构和物理结构C) 顺序结构和链式结构 D) 虚拟结构和抽象结构 6. 在数据结构中,数据的存储结构包括 。§ A) 线性结构和非线性结构 B) 逻辑结构和物理结构§C) 顺序结构和链式结构 D) 虚拟结构和抽象结构 第二章 线性表1. 线性结构的数据元素之间存在一种( )。A一对多关系B多对多关系C多对一关系D一对一关系2. 在长度为n的顺序表中插入一个元素,需要平均移动 个元素。A) n/2 B)nC) n(n-1) D) n(n+1)3. 在有n个元素的顺序表中做插入、删除运算,平均时间复杂度为 。4. 顺序表中逻辑上相

3、邻的元素物理位置 相邻,单链表中逻辑上相邻的元素的物理位置 相邻。A)必然、必然 B)必然、不一定C)不一定、必然 D)不一定、不一定5相对于顺序存储而言,链式存储的优点是()。A随机存取B节约空间C增、删操作方便D节点间关系简单6. 以下关于头结点的描述中,叙述错误的是 A) 头结点是对链表首元结点的别称B) 若链表中附设头结点,则头指针一定不为空C) 头结点中不存储链表的数据元素,而是一些诸如表长之类的辅助信息D) 在单链表中附设头结点,插入或删除首元素时不必进行特殊处理7已知L是无表头结点的单链表,且P所指结点既不是首元结点,也不是尾元结点,则在P之后插入S所指结点,则执行()。A) S

4、->next=P->next; P->next=S;B) P->next=S->next; S->next=P;C) S->next=P; P->nextS;D) P->next=S; S->next=P;8. 已知L是带表头结点的非空单链表,且P结点是S结点的直接前驱。则删除S结点的语句序列为 。I. P->next = S ;free(P)II. P->next = P->next->next; free(S)III. P->next = S->next; free(S) IV. P = P-&

5、gt;next ;free(S)A) I和II正确 B) II和 III正确C) III和IV正确 D) 全部正确9. 已知L是带表头结点的单链表,则删除首元结点的语句序列是( )。A) L->next =L->next->next; free(L)B) P = L ;L= P->next ;free(P)C) P = L->next ; L->next= P->next ;free(P)D) P = L ;L= P->next ;free(P)10. 已知L是一带有头结点的单链表的头指针,则该单链表为空的条件是 。11. 已知P结点是某双向链表

6、的中间结点,则删除P结点的语句序列是 , ,free(P);12.试写一算法在带头结点的单链表结构上实现线性表操作LOCATE(L,X)13. 试写一算法在带头结点的单链表结构上实现线性表操作LENGTH(L)14. 试写一算法,在无头结点的动态单链表上实现线性表操作INSERT(L,i,b),并和在带头结点的动态单链表上实现相同操作的算法进行比较。15. 已知线性表中的元素以值递增有序排列,并以单链表作存储结构。试写一高效的算法,删除表中所有值大于mink且小于maxk的元素。同时释放被删结点空间,并分析时间复杂度。16. LA和LB是两个带有头结点且元素以值递增有序排列。写一算法,将LA与

7、LB合并成一个有序链表LC。第三章 栈和队列1. 设将整数1,2,3,4,5依次进栈,最后都出栈,出栈可以在任何时刻(只要栈不空)进行,则出栈序列不可能的是( )。A) 32415 B) 45231 C) 32145 D) 453212. 在栈中由顶向下已存放元素c, b, a 在第4个元素d入栈前,栈中元素可以出栈,则不可能的出栈序列是A) dcba B) cbda C) cdba D) cadb3. 若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续3次进行退栈操作,则不可能得到的出栈序列是()。AdcebfaBcbdaefCbdcaefDafedcb4. 设有

8、栈S和队列Q,其初始状态为空,元素a1,a2,a3,a4,a5,a6依次入栈,出栈的元素进入队列Q。若元素出队列的顺序是a2,a4,a3,a6,a5,a1,则栈的容量至少是 。5. 某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作,则abcde顺序入队,不可能的到的顺序是()。AbacdeBdbaceCdbcaeDecbad6. 设用一维数组An存储一个栈,令An为栈底,用整型变量T指示当前栈顶位置,AT为栈顶元素。当从栈中弹出一个元素时,变量T的变化为( )。A) T=T+1 B) T=T-1 C) T不变 D) T=n-17. 循环队列是满队列的条件是 。A)Q.rearQ.fr

9、ont B)(Q.rear+1) % maxsizeQ.frontC)Q.rear0 D)Q.front08. 在具有m个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队满的条件是( )A. front= (rear1) % m B. front1= rearC. front= rear D. rear= m9. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队首指针和队尾指针,则判断队空的条件是( )A)front= (rear1) % n B)front1=rearC)front=rear D)front=010. 循环队列用数组

10、A0m-1存放其数据元素。设front指向其实际的队头,rear指向其实际队尾的下一个位置,则当前队列中的数据元素有 个。11.写出下列程序段的输出结果(栈的元素类型SelemType为char)void main() Stack S; char x,y; InitStack(S); x='c'y='k' Push(S,x); Push(S,'a'); Push(S,y); Pop(S,x);Push(S,'t');Push(S,x); Pop(S,x);Push(S,'s'); while(!StackEmpty

11、(S)Pop(S,y);printf(y); printf(x);12.写出以下程序段的输出结果(队列中的元素类型QelemType为char)void main() Queue Q; InitQueue(Q); char x='e'y='c' EnQueue(Q,'h'); EnQueue(Q,'r');EnQueue(Q,y); DeQueue(Q,x);EnQueue(Q,x); DeQueue(Q,x);EnQueue(Q,'a'); while(!QueueEmpty(Q) DeQueue(Q,y); p

12、rintf(y); printf(x);第四章 串1.在串的运算中,StrLength(Concat (aa,bb)的返回值为 A) 0B) 8C) 6D) 42设s1”I have_”,s2”a dream”,则strcat(s1, s2)的值是 ,SubString(s1,4,3)的值是 。3. 设s1”I am a student”,s2”a student”,则Index(s1,s2)的值是 。第五章 数组和广义表1. 假设有二维数组A5×6,每个元素用相邻的4个字节存储,存储器按字节编址。已知A的基地址为1000,则数组A的最后一个元素a45的第一个字节的地址是 ;按行存储

13、时,元素a14的第一个字节的地址是 。2. 已知二维数组A1.7,1.7按列存放,其起始存储位置为100,每个元素占用4个字节,则元素A4,6的第一个字节的地址为 。A)204 B)252 C)208 D)2563. 一个非空广义表的表头()。A一定是子表 B一定是原子C不能是子表 D可以是原子,也可以是子表4. 设广义表L((a,b),c,()),则head(L) ,tail(L) 。5. 求下列广义表(1)A=(p,h,w) ,对A求表头和表尾(2)B=(b,k,p,h),对B求表头和表尾(3)C=(a,b),(c,d),对C求表头(4)C=(a,b),(c,d),对C求表尾(5) 对(3

14、)的结果求表尾(6) 对(4)的结果求表头(7) 对(5)的结果求表尾(8) 对(6)的结果求表头第六章 树和二叉树一、 单选或填空题1. 已知完全二叉树的第7层上有10个叶子结点,则整个二叉树的结点数最多是 A) 73 B) 63 C) 235 D) 2452. 300个结点的完全二叉树的叶结点有 个。3一个具有1025个结点的二叉树的高h为_。A)11 B)10 C)11至1025之间 D)10至1024之间4. m叉树的第i层至多有 个结点5. 将一棵有100个节点的完全二叉树从上到下,从左到右依次对节点进行编号,根节点的编号为1,则编号为49的节点的右孩子编号为()。ABCDEFA99

15、B98C50D486把如右图所示的树转换成二叉树时,C是( ) A. A的左子女 B. A的右子女 C. B的左子女 D. B的右子女7. 设森林F中有3棵树,其结点个数分别是n1、n2和n3,则与森林对应的二叉树根结点的右子树上的结点个数是 。 A) n1-1 B)n1+n2 C) 0 D) n2+n38.在一颗度为4的树T中,若有20个度为4的结点,10个度为3的结点,5个度为2的结点,10个度为1的结点,则树T的叶结点个数有 个。9. 一棵二叉树中序遍历结果为DCBAEFG,后序遍历结果为DCBGFEA。则此二叉树先序遍历的结果应为A) ABCDEFG B)ABECFDG C)AEBFC

16、GD D)不能确定10. 将一棵树t 转换为孩子兄弟链表表示的二叉树h,则t 的后根遍历是h 的A)先序遍历 B)中序遍历 C)后序遍历 C)层序遍历11.现有一段电文共100个字符,其中A出现50次,B出现20次,C出现5次,D出现10次,E出现15次。现对这5个字符进行哈夫曼编码,则其平均码长为 。二、 解答题1. 某二叉树层序序列为abcdefghij,中序序列为bgdhjaecif。(1)画出该二叉树;(2)画出该二叉树的后序后继线索树;(3)画出该二叉树对应的树或森林。2. 一棵二叉树的先序、中序和后序序列分别如下,其中有部分未给出。 先序:_B_EHI_FG_K 中序:D_HEIA

17、_CJG_ 后序:_H_EBF_KG_A (1)试求出空格处的结点字符; (2)画出该二叉树;(3)画出与该二叉树对应的树或森林。3. 已知某通讯用电文仅有A、B、C、D、E、F六个字符构成,其出现的频率分别为23,5,14,8,25,7,请首先建立哈夫曼树,然后给出六个字符的哈夫曼编码(注:建立哈夫曼树时权值小的为左子树,权值大的为右子树)。第七章一 单选或填空题1. 若某有向图的邻接矩阵A只有0和1两种元素,其中aij1表示有向图中存在弧<i,j>,则编号为i顶点的入度可用 表示。A) 邻接矩阵中第i行元素之和 B) 邻接矩阵中第i列元素之和 C) 邻接矩阵中对角线元素之和 D

18、) 以上均不正确2. 使用邻接表作为某无向图的存储结构,若无向完全图中有n个顶点,则邻接表中必存在 个表结点。A)n2 B)2n C)n(n-1) D) 2n-13. 一个含有n个顶点和e条边的无向图,在其邻接矩阵存储结构中共有()零元素。AeB2eCn2-eDn2-2e4在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的()倍。A1/2B1C2D45下列关于图的叙述中,正确的是( )、 回路是简单路径 、存储稀疏图,用邻接矩阵比邻接表更省空间 、若有向图中存在拓扑序列,则该图不存在回路 A仅 B仅、 C仅 D仅、 6. 有n个顶点的无向图至少有 条边才能确保是一个连通图。7在有n个结

19、点的无向图中,其边数最多为 。8. 对于具有n个结点的连通图,它的最小生成树中有 条边。A)n2 B)n-1 C)n(n-1) D) n(n-1)/29. 关键路径是AOE网中A)从源点到汇点的最长路径 B)从源点到汇点的最短路径C)最长回路D)最短回路10. 以下关于图的描述中,正确的是A) n个顶点的无向完全图有条边。B) 对任何用顶点表示活动的网络(AOV网)进行拓扑排序的结果是唯一的。C) 若图G的邻接矩阵是对称的,则G一定是无向图cabedD) 有向图的邻接矩阵一定是非对称矩阵11. 对下图进行拓扑排序,可以得到不同的拓扑序列的个数是()A5B3C2D112下图为用边表示活动的AOE

20、-网。则V8的最早发生时间是 。二、解答题1. 已知某无向图的邻接表存储结构如下图所示,求解下列问题:(1)画出它的无向图;(2)画出它的的邻接矩阵存储结构;(3)从顶点A出发,画出其广度优先生成树。0 A 1 41 B 0 2 52 C 1 3 43 D 2 54 E 0 2 55 F 1 3 42. 已知无向带权图G的邻接矩阵如下所示。(1)从顶点a出发,求其深度优先生成树; (2)从顶点a出发,根据普里姆算法构造最小生成树,过程在下面的图(1)至(5)中画出。(3)给出邻接表存储结构;3. 对于如下图所示的带权有向图,求解关键路径, 计算各事件(顶点)的最早发生时间和最迟发生时间,各活动

21、(弧)的最早开始时间和最迟开始时间。请填写在答题纸的表格中。bbdg64521187244acdefhk表1 计算各事件(顶点)的最早发生时间和最迟发生时间,请填写在表1的空白处。顶点abcdefghkve06457151418vl0810161418表2 计算各活动(弧)的最早开始时间和最迟开始时间,请填写在表2的空白处。弧abacadbecedfegehfhgkhke00064571514l38101614 4.对于右图,求解下列问题:(1)写出该图的邻接矩阵;(2)写出全部拓扑排序序列;(3)从顶点V1出发,给出深度优先遍历生成树;(4)按照迪杰斯特拉算法,求V1结点到各点的最短路径,填

22、写表1的空白处。终点从V1到各终点的距离和最短路径的求解过程i=1i=2i=3i=4i=5i=6i=7V22-V333-V4-V51313-V6-V7-V8161616vjv2v3第九章一单选或填空题1已知一个长度为11的有序表,使用折半查找的方法,查找第8个元素时所需进行的关键字比较次数为 。2. 已知一个长度为16的有序表,使用折半查找的方法,查找一个不存在的元素,则所需进行的关键字比较次数最多是 。A4B5C6D73. 在二叉排序树中,关键字值最大的结点A)左指针一定为空 B)右指针一定为空C)左右指针均为空 D)左右指针均不为空4 对于下列关键字序列,不可能构成某二叉排序树中一条查找路

23、径的序列是( ) A95,22,91,24,94,71 B92,20,91,34,88,35 C21,89,77,29,36,38 D12,25,71,68,33,34 5AVL树是一种平衡的二叉排序树,树中任一结点的A左、右子树的高度均相同 B. 左、右子树高度差的绝对值不超过1C. 左子树的高度均大于右子树的高度 D. 左子树的高度均小于右子树的高度6. 以下关于查找方法的描述中,错误的是 A) 平衡二叉树一定也是二叉排序树。B) 有序表的折半查找判定树是二叉排序树。C) 中序遍历一棵二叉排序树,可以得到其数据元素的升序排列。D) 后序遍历一棵二叉排序树,可以得到其数据元素的降序排列。7.

24、下列二叉排序树中,满足平衡二叉树定义的是( )8、在下列所示的平衡二叉树中插入关键字48后得到一棵新平衡二叉树,在新平衡二叉树中,关键字37所在结点的左、右子结点中保存的关键字分别是( )A、13,48 B、24,48 C、24,53 D、24,909. 从理论上讲,将数据以何()结构存放,则查找一个数据所用时间不依赖于数据个数n.A)二叉查找数 B)链表 C)二叉树D)哈希表10 为提高散列(Hash)表的查找效率,可以采取的正确措施是( )、增大装填(载)因子 、设计冲突(碰撞)少的散列函数、处理冲突(碰撞)时避免产生聚集(堆积)现象A仅 B仅 C仅、 D仅、二、解答题1. 设记录关键字集

25、合key=33,20,53,55,23,38,40,65,选取哈希函数为H(x)=key mod 11;解决冲突的方法为“线性探测法”。(1)请按上述条件将key中各值依次填入下表中:(2) 求该哈希表查找成功和查找不成功情况下的平均查找长度。2. 设记录关键字集合key=32,13,49,55,22,39,20,选取哈希函数为H(x)=key mod 7;解决冲突的方法为“链地址法”。(1)画出所构造的哈希表;(2)求该哈希表查找成功和查找不成功情况下的平均查找长度。3. 设记录关键字集合key=32,13,49,55,22,39,20,解决冲突的方法为“线性探测法”,要求装填因子为:0.7

26、,哈希函数的形式为H(x)=key mod P,散列表的地址从0开始。(1)构造哈希函数;(2)画出所构造的哈希表;(2)求该哈希表查找成功和查找不成功情况下的平均查找长度。4. 选取哈希函数H(key)=(3*key) mod 11。用开放定址法处理冲突,di=i(7*key) % 10+1)(i=1,2,3)。试在010的散列地址空间对关键字序列(22,41,53,46,30,13,01,67):1) 构造该序列对应的哈希表;2) 求等概率情况下查找成功的平均查找长度。哈希表如下图所示:5. 从空树开始,依次插入13,34,51,24,62,43,75,18,画出建立2-3树后的状态,并分

27、别画出删除43、24后的2-3树状态。6. 画出对长度为12的有序表进行折半查找的判定树,并求其等概率查找成功时的平均查找长度。第十章一、 单选或填空题1. 数组中原有数据如下:15,13,20,18,12,60。下面是一组用不同排序方法进行一趟排序后的结果。则ABCD四个选项中,说法正确的是 I 12,13,15,18,20,60 II 13,15,18,12,20,60III 13,15,20,18,12,60 IV 12,13,20,18,15,60V 13,15,18,20,12,60A) I快速排序;II简单选择排序;III直接插入排序;IV冒泡排序;V归并排序B) I冒泡排序;II

28、快速排序;III归并排序;IV简单选择排序;V直接插入排序C) I快速排序;II冒泡排序;III直接插入排序;IV简单选择排序;V归并排序D) I直接插入排序;II归并排序;III快速排序;IV简单选择排序;V冒泡排序 2. 对一组数据(2,12,16,88,5,10)进行排序,若前三趟排序结果如下:第一趟:2,12,16,5,10,88第二趟:2,12,5,10,16,88第三趟:2,5,10,12,16,88则采用的排序方法可能是( )A.冒泡排序法 B.希尔排序法 C.归并排序法 D.基数排序法3. 若一组记录的排序码为(45,78,56,36,40,87),则初始小根堆的结果为A36,45,56,78,40,87B87,

温馨提示

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

最新文档

评论

0/150

提交评论