ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:99.86KB ,
资源ID:12755840      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12755840.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构习题汇编.docx)为本站会员(b****1)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构习题汇编.docx

1、数据结构习题汇编第一章 数据结构概述一、选择题1在数据结构中,从逻辑上可以把数据结构分为(C )。A动态结构和静态结构 B紧凑结构和非紧凑结构 C线性结构和非线性结构 D内部结构和外部结构2线性表的顺序存储结构是一种(A )的存储结构。A随机存取 B顺序存取 C索引存取 D哈希存取3计算机算法指的是(C),它必须具备输入、输出和(B )等五个特征。 (1) A计算方法 B排序方法 C解决某一问题的有限运算序列 D调度方法 (2) A可行性、可移植性和可扩充性 B可行性、确定性和有穷性 C确定性,有穷性和稳定性 D易读性、稳定性和安全性4线性表若采用链表存储结构,要求内存中可用存储单元的地址(D

2、 )。A必须是连续的 B部分必须是连续的 C一定是不连续的 D连续不连续都可以5根据数据元素之间关系的不同特性,以下四类基本的逻辑结构反映了四类基本的数据组织形式,其中解释错误的是(A )。A集合中任何两个结点之间都有逻辑关系但组织形式松散 B线性结构中结点按逻辑关系依次排列形成一条“锁链” C树形结构具有分支、层次特性,其形态有点像自然界中的树 D图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接二、判断题1数据元素是数据的最小单位。2数据结构是带有结构的数据元素的集合。3数据结构、数据元素、数据项在计算机中的映像分别称为存储结构、结点、数据域。4数据项是数据的基本单位。5数据的

3、逻辑结构是指各数据元素之间的逻辑关系,是用户按使用需要建立的。6数据的物理结构是数据在计算机中实际的存储形式。7算法和程序没有区别,所以在数据结构中二者是通用的。三、填空题1所谓数据的逻辑结构指的是数据元素之间的_逻辑关系_。2,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,它包括三方面的内容_数据的逻辑结构、数据的存储结构、对数据施加的操作。3数据的逻辑结构包括集合结构、_线性结构_、_树型结构_和_图状结构_四种类型。4算法的五个重要特性是_可行性_、_确定性_、_有穷性_、_输入_、_输出_。5下列程序段的时间复杂度是_物理_。 for (i=1;i=n;i+) Ai,i=0

4、;6存储结构是逻辑结构的_物理_实现。7从数据结构的观点看,通常所说的“数据”应分成三个不同的层次,即_数据_、_数据元素_和_数据项_。8一个算法的时空性能是指该算法的_时间复杂度_和_空间复杂度_,前者是算法包含的_计算量_,后者是算法需要的_存储量_。四、应用题1分析下列程序段的时间复杂度。 i=1; WHILE (inext=NULL Chead-next=head Dhead!=NULL补充:带头结点的单链表head为空的条件是( )。Ahead=NULL Bhead-next=NULL Chead-next=head Dhead!=NULL10. 在一个单链表中,已知*q结点是*p

5、结点的前驱结点,若在*q和*p之间插入结点*s,则执行( )。 As-next=p-next;p-next=s; Bp-next=s-next;s-next=p; Cq-next=s; s-next=p; Dp-next=s; s-next=q;11. 在一个单链表中,若*p结点不是最后结点。在*p之后插入结点*s,则执行( )。 As-next=p;p-next=s; Bs-next=p-next;p-next=s; Cs-next=p-next; p=s; Dp-next=s; s-next=p;12. 若某线性表中最常用的操作是取第i个元素和找第i个元素的前驱元素,则采用( )存储方式最

6、节省时间。 A顺序表 B. 单链表 C双链表 D单循环链表13在一个单链表中,若删除*p结点的后继结点,则执行( )。 Aq=p-next;p-next=q-next;free(q); Bp=p-next;p-next=p-next-next;free(p); Cp-next=p-next;free(p-next); Dp=p-next-next;free(p-next);14循环链表的主要优点是( )。 A不再需要头指针了 B已知某个结点的位置后,容易找到它的直接前驱 C在进行插入、删除操作时,能更好地保证链表不断开 D从表中任一结点出发都能扫描到整个链表15在线性表的下列存储结构中,读取元

7、素花费时间最少的是( )。 A单链表 B双链表 C循环链表 D顺序表二、判断题( )1顺序存储的线性表可以随机存取。( )2顺序存储的线性表的插入和删除操作不需要付出很大的代价,因为平均每次操作只有近一半的元素需要移动。( )3线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。( )4在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上不一定相邻。( )5在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。( )6在单链表中,可以从头结点开始查找任何一个元素。( )7线性表的链式存储结构优于顺序存储结构。( )8在线性表的顺序存

8、储结构中,插入和删除元素时,移动元素的个数与该元素的位置有关。( )9在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。( )10顺序存储方式只能用于存储线性结构。三、填空题1为了便于讨论,有时将含n(n0)个结点的线性结构表示成(a1,a2,an),其中每个ai代表一个_结点_。a1称为_头_结点,an称为_尾_结点,i称为ai在线性表中的_位置_。对任意一对相邻结点ai、ai+1(1inext;p-next=q-next;free(q); _6对于一个具有n个结点的单链表,在p所指结点后插入一个结点的时间复杂度为_O(1)_,在给定值为x的结点后插入新

9、结点的时间复杂度为_O(n)_。7单链表表示法的基本思想是用_指针_表示结点间的逻辑关系。8在顺序表中插入或删除一个元素,平均需要移动_一半_元素,具体移动的元素个数与_元素位置_有关。9在单链表中,若p和s是两个指针,且满足p-next与s相同,则语句p-next=s-next的作用是_删除_s指向的结点。10在单链表中,指针p所指结点为最后一个结点的条件是_p-next=NULL_。11在单链表中,若要在p所指结点之前插入s所指的结点,可进行下列操作: s-next=_p-next_; p-next=s; temp=p-data; p-data=_s-data_; s-data=_temp

10、_ _;四、应用题1描述以下三个概念的区别:头指针,头结点,首元结点(第一个元素结点)。答:首元结点是指链表中存储的线性表中的第一个数据元素的结点。为了操作方便,通常在链表的首元结点之前附设一个结点,称为头结点。头指针是指向链表中的第一个结点的指针。2在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因素?答:平均移动表中大约一半的结点,插入操作平均移动n/2 个结点,删除操作平均移动(n-1)/2 个结点。具体移动的次数取决于表长和插入、删除的结点的位置。3如果有n个线性表同时共存,并且在处理过程中各表的长度会发生动态变化,线性表的总长度也会自动地改变。在此情况下,

11、应选择哪一种存储结构?为什么?答:应选用链式存储结构。因为顺序表是静态存储结构,只能预先分配,不能随着线性表长度的改变而变化。而链表则可根据需要动态地申请空间,因此适用于动态变化表长的线性表。4若线性表的总数基本稳定,且很少进行插入、删除操作,但要求以最快的方式存取线性表的元素,应该用哪种存储结构?为什么?答:应选用顺序存储结构。因为顺序存储结构存取元素操作的时间复杂度为O(1)。补充:何时选用顺序表,何时选用链表作为线性表的存储结构为宜?答:从空间上来看,当线性表的长度变化较大、难以估计其规模时,选用动态的链表作为存储结构比较合适,但链表除了需要设置数据域外,还要额外设置指针域,因此当线性表

12、长度变化不大、易于事先确定规模时,为了节约存储空间,宜采用顺序存储结构。从时间上来看,若线性表的操作主要是查找,很少进行插入和删除操作时,应选用顺序表。对于频繁进行插入和删除操作的线性表,宜采用链表作为存储结构。 第三章 栈和队列一、选择题1设有一顺序栈s,元素s1,s2,s3,s4,s5,s6依次入栈,如果6个元素出栈的顺序是s2,s3,s4,s6,s5,s1,则栈的容量至少应该是( )。 A2 B3 C5 D62设有一顺序栈已经含有3个元素,如下图所示,元素a4正等待入栈。以下序列中不可能出现的出栈序列是( )。 Aa3,a1,a4,a2 Ba3,a2,a4,a1 Ca3,a4,a2,a1

13、 Da4,a3,a2,a1a1a2a3 top 3一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( )。 Ae,d,c,b,a Bd,e,c,b,a Cd,c,e,a,b Da,b,c,d,e4一个队列的入队序列是1,2,3,4,则队列的可能的输出序列是( )。 A4,3,2,1 B1,2,3,4 C1,4,3,2 D3,2,4,1二、判断题对1在顺序栈栈满情况下,不能再入栈,否则会产生“上溢”。错2与顺序栈相比,链栈的一个优点是插入和删除操作更加方便。错3一个栈的输入序列是1,2,3,4,则在栈的输出序列中可以得到4,3,1,2对4一个栈的输入序列是1,2,3,4,则在栈的输

14、出序列中可以得到1,2,3,4。三、填空题1在具有n个单元的循环队列中,队满时共有_ n-1 _个元素。2假设以S和X分别表示入栈和出栈操作,则对输入序列a,b,c,d,e进行一系列栈操作SSXSXSSXXX之后,得到的输出序列为_bceda _。3栈的逻辑特点是_先进后出_,队列的逻辑特点是_先进先出_,二者的共同特点是_操作受限_。4_栈_可以作为实现递归函数调用的一种数据结构。5在队列中,新插入的结点只能添加到_队尾_。6设有一个空栈,假设以push和pop分别表示入栈和出栈操作,现在输入序列为1,2,3,4,5,经过push,push,pop,push,pop,push后,栈顶指针所指

15、元素是_4_。四、综合题1.已知当前循环队的状态如图所示,请写出依次执行如下操作时队的状态。def front rear(1) g,h,i,j入队; defghij front rear(2)d,e出队; fghij front rear(3)k,l,m,n,o,p入队lmnfghijk rear front 第四章 树一、 选择题1以下说法错误的是( )。 A完全二叉树上结点之间的父子关系可由它们编号之间的关系来表达 B在三叉链表上,二叉树的求双亲操作很容易实现 C在二叉链表上,求根以及求左、右孩子等操作很容易实现 D在二叉链表上,求双亲操作的时间性能很好2以下说法错误的是( )。 A一般在

16、哈夫曼树中,权值越大的叶子离根结点越近 B哈夫曼树中没有度数为1的分支结点 C若初始森林中共有n棵二叉树,最终求得的哈夫曼树共有2n-1个结点 D若初始森林中共有n棵二叉树,进行2n-1次合并后才能剩下一棵最终的哈夫曼树3深度为6的二叉树最多有( )个结点。 A64 B63 C32 D314将含有41个结点的完全二叉树从根结点开始编号,根为1号,后面按从上到下、从左到右的顺序对结点编号,那么编号为21的双亲结点编号为( )。 A10 B11 C41 D205一棵二叉树满足下列条件:对任意结点,若存在左、右子树,则其值都小于它的左子树上所有结点的值,而大于右子树上所有结点的值。现采用( )遍历方

17、式就可以得到这棵二叉树所有结点的递减序列。 A前序 B中序 C后序 D层次6如图6-1所示的二叉树的中序遍历序列是( )。 Aabcdgef Bdfebagc Cdbaefcg Ddefbagc 7已知某二叉树的后序遍历序列是deacb,中序遍历序列是deabc,它的前序遍历序列是( )。 Aacbed Bbaedc Cdceab Dcedba8在图6-2中的二叉树中,( )不是完全二叉树。9哈夫曼树的带权路径长度是( )。A所有结点权值之和 B所有叶结点带权路径长度之和 C带权结点的值 D除根以外所有结点权值之和10设有一棵22个结点的完全二叉树,那么整棵二叉树有( )个度为0的结点。 A6

18、 B7 C8 D1111已知完全二叉树有26个结点,则整棵二叉树有( )个度为1的结点。 A0 B1 C2 D1312 已知如图6-3所示的哈夫曼树,那么电文CDAA的编码是( )。 A110100 B11011100 C010110111 D1111110013在n个结点的完全二叉树中,对任一结点i(1in),i的左孩子可能是( )。 Ai/2 B2i+1 C2i D都不是14已给出图6-3所示的二叉树,A,B,C,D的权值分别为7,5,2,4,则该树的带权路径长度为( )。 A46 B36 C35 D都不是二、填空题1树(及一切树形结构)是一种 _结构。在树中,_结点没有直接前驱。对树上任

19、一结点x来说,x是它的任一子树的根结点惟一的_。2二叉树第i(i0)层上至多有_个结点。3深度为k(k0)的二叉树至多有_个结点。4对任何二叉树,若度为2的节点数为n2,则叶子数n0=_。5满二叉树上各层的节点数已达到了二叉树可以容纳的_。满二叉树也是_二叉树,但反之不然。6具有n个结点的完全二叉树的深度为_。7二叉树通常有_存储结构和_存储结构两类存储结构。8每个二叉链表必须有一个指向_结点的指针,该指针具有标识二叉链表的作用。9对二叉链表的访问只能从_指针开始。10具有100个结点的完全二叉树的深度是_。11在_遍历二叉树的序列中,任何结点的子树上的所有结点都是直接跟在该结点之后。12若一

20、棵二叉树的叶子数为n,则该二叉树中左、右子树皆非空的结点个数为_。13一棵树的形状如图6-5所示,它的根结点是_,叶结点是_,结点H的度是_,这棵树的度是_,这棵树的深度是_,结点F的儿子结点是_,结点G的父结点是_。14含有2n个结点的二叉树高度至少是_,至多是_(仅含根结点的二叉树高度为1)。三、应用题1分别写出图6-7所示二叉树的前序、中序和后序序列。 2已知一棵二叉树的中序序列和后序序列分别为BDCEAFHG和DECBHGFA,试画出这棵二叉树,并写出其前序遍历序列。3设某密码电文由8个字母组成,a,b,c,d,e,f,g,h,每个字母在电文中的出现频率分别是7,19,2,6,32,3

21、,21,10,试为这8个字母设计相应的哈夫曼树及编码。4对于一个关键字序列15, 28, 3, 38, 12, 2, 56, 17,20,请生成一个二叉排序树,并给出依次删除38,28后的结果。第五章 图一、选择题1在一个图中,所有顶点的度数之和等于所有边数的( )倍。 A12 B1 C2 D42在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍。 A12 B1 C2 D43一个有N个顶点的无向图最多有( )条边。 AN BN*(N-1) CN*(N-1)2 D2N4具有4个顶点的无向完全图有( )条边, A6 B12 C16 D205具有6个顶点的无向图至少应有( )条边才能

22、确保是一个连通图。 A5 B6 C7 D86一个具有N个顶点的无向图中,要连通全部顶点至少需要( )条边。 AN BN+1 CN-1 DN27对于一个具有N个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是( )。 AN B(N-1)*(N-1) CN-1 DN*N8对于一个具有N个顶点和E条边的无向图,若采用邻接表表示,则表头向量的大小为(1);所有邻接表中的结点总数是(2)。 (1) AN BN+1 CN-1 DN+E (2)AE/2 BE C2E DN+E二、填空题1对无向图,其邻接矩阵是一个关于 主对角线 对称的矩阵。2在有向图的邻接矩阵上,由第i行可一得到第 个结点的出度,而由第j

23、列可得到第 个结点的入度。3对无向图,设有n个结点e条边,则其邻接表表示中需要 个表结点。对有向图,设有n个顶点e条弧,则其邻接表表示需要 个表结点。4在无权图G的邻接矩阵A中,若(Vi,Vj)或属于图G的边集,则对应元素Ai,j等于 ,否则等于 。5遍历图的基本方法有 优先搜索和 优先搜索两种。三、应用题1给出如图5-1所示的无向图G1的邻接矩阵和邻接表。2分别给出图5-1所示的G2的邻接矩阵、邻接表和逆邻接表。图5-1第六章 查找一、选择题1顺序查找法适合于( )存储结构的查找表。 A压缩 B散列 C索引 D顺序或链式2对采用折半查找法进行查找操作的查找表,要求按( )方式进行存储。 A顺序存储 B链式存储 C顺序存储且结点按关键字有序 D链式存储且结点按关键字有序3设有序表的关键字序列为(1,4,6,10,18,35,42,53,67,71,78,84,92,99),当用折半查找法查找键值为35的结点时,经( )次比较后查找成功。 A

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1