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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构期末复习题.docx

1、数据结构期末复习题数据结构练习一(1-4章)一、填空题1数据的逻辑结构被分为(线性结构)、(非线性结构)。2数据的存储结构被分为顺序、(链接)、(索引)和散列四种。3顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作的时间代价基本上都是等效的。则插入一个元素大约要移动表中的n/2个元素,删除一个元素时大约要移动表中的 n-1/2 个元素。4数组的长度是 ,线性表的长度是( 数据元素的个数)。5当向个顺序表插入一个元素时,从插入位置开始向后的所有元素均需 向后移动 一个位置,移动过程是从 表中最后一个结点 向 第 i个结点 依次移动每一个元素。6要从一个顺序表删除一个元素时,被删除元素之

2、后的所有元素均需 向前移动 一个位置,移动过程是从 第 i个结点 向 表中最后一个结点 依次移动每一个元素。7在双向链表中,每个结点含有两个指针域,个指向上 结点,另一个指向 结点。8根据线性表的链式存储结构中每个结点所含指针的个数,链表可分为 和 ;而根据指针的联接方式,链表又可分为 和 。9当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,则采用 存储结构为宜,相反,当经常进行的是插入和删除操作时,则采用 存储结构为宜。10顺序表中逻辑上相邻的元素,物理位置 紧邻,单链表中逻辑上相邻的元素,物理位置 紧邻。11线性表、栈和队列都是 结构,可以在线性表的 位置插入和删除元素;对

3、于栈只能在 插入和删除元素;对于队列只能在 插入元素和在 删除元素。12设有一空栈,现有输入序列1,2,3,4,5,经过push,push,pop,push,pop,push,push后,输出序列是 。13无论对于顺序存储还是链接存储的栈和队列来说,进行插入或删除运算的时间复杂度均相同为 。14设字符串S1=ABCDEF,S=PQRS,则运算S=CONCAT(SUB(S1,2,LEN(S2),SUB(Sl,LEN(S2),2)后的串值为 。15空串是指 ,空格串是指 。二、单项选择题:(每空2分,共30分)1下面程序段的时间复杂度为( )。 for(int i=0; im; i+) for(i

4、nt j=0; jnext=p-next-next; Bp=p-next: Cp=p-next-next; Dp-next=p:5线性表采用链式存储刚,其地址( )。 A必须是连续的 B一定是不连续的 C部分地址必须是连续的 D连续与否均可以是6在一个单链表中,已知*q结点是*p结点的前趋结点,若在*q和*p之间插入*s结点,则须执行( )。 As-next=p-next;p-next=s Bq-next=s: s-next=p Cp-next=s-next;s-next=p Dp-next=s; s-next=q7线性表是( )。 A一个有限序列,可以为空 B一个有限序列,不可以为空 C一个

5、无限序列,可以为空 D一个无限序列,不可以为空8在一个长度为n的顺序表中向第i个元素(onext=s; Bs-next=hs; hs=s;Cs-next=hs-next;hs-next=s: Ds-next=hs;hs=hs-next;14在一个链队列中,假定front和rear分别为队头和队尾指针,则插入*s结点的操作应执行( )。 Afront-next=s; front=s Bs-next=rear; rear=sCrear-next=s; rear=s Ds-next=front; front=s15在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为(

6、 )。 Afront=front-next Brear=rear-next Crear=front-next Dfront=rear-next三、简述以下算法的功能(每题5分,共10分)1status A(LinkedList L)if (L&Lnext) Q=L; L=Lnext; P=L; while (Pnext) P=Pnext; Pnext=Q; Qnext=NULL; Return OK;2status algo2(Stack S, int e) Stack T; int d; InitStack(T);while(!StackEmpty(S)Pop(S,d);if(d!=e) P

7、ush(T,d);while (!StackEmpty(T)Pop(T,d); Push(S,d);四、算法编写(共25分)1设计在无头结点的单链表中删除第i个结点的算法。(7分)2设计将单循环链表逆置的算法。(8分)3编写一个程序,将两个字符串s1和s2进行比较,若s1s2则输出一个正数,若s1=s2则输出0,若s1s2则输出一个负数。(10分)数据结构练习二(5-6章)一、填空题(每空1分,共30分)1一维数组的逻辑结构是 ,存储结构是 ;对于二维或多维数组,分为按 和 两种不同的存储方式。2对于一个二维数组Amn,若按行序为主序存储,则任一元素Aij相对于A00的地址为 。3一个广义表为

8、(a,(a,b),d,e,(i,j),k),则该广义表的长度为 ,深度为 。4 一个nn的对称矩阵,如果以行为主序或以列为主序存入内存,则其容量为 。5己知广义表A=(a,b,c),(d,e,f),则运算head(tail(tailA)= 。6数组Al.10,-2.6,2.8以行优先的顺序存储,设第一个元素的首地址是100,每个元素占3个存储长度的存储空间,则元素A5,0,7的存储地址为 。7假定一棵树的广义表表示为A(B(E),C(F(H,I,J),G),D),则该树的度为 ,树的深度为 ,终端结点的个数为 , C结点的双亲结点为 ,其孩子结点为 和 结点。8设F是一个森林,B是由F转换得到

9、的二叉树,F中有n个非终端结点,则B中右指针域为空的结点有 个。9对于一个具有n个结点的二叉树,当它为一棵 二叉树时具有最小高度,即为 ,当它为一棵单支树具有 高度,即为 。10由带权为3,9,6,2,5的5个叶子结点构成一棵哈夫曼树,则带权路径长度为 。11在一棵二叉排序树上按 遍历得到的结点序列是一个有序序列。12一棵深度为k的满二叉树的结点总数为 ,一棵深度为k的完全二叉树的结点总数的最小值为 ,最大值为 。13在具有n个结点的二叉排序树上插入一个新结点时,其时间复杂度大致为 ,根据n个数据元素生成一棵二叉排序树时,其时间复杂度大致为 。14己知8个数据元素由(35,75,40,15,2

10、0,55,95,65)桉照依次插入结点的方法生成一棵二叉排序树后,最后两层上的结点总数为 。15由a,b,c三个结点构成的二叉树,共有 种不同的结构。二、单项选择题:(每空2分,共30分)1在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为( )个。A4 B5 C6 D72假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为( )个。A15 B16 C17 D473假定一棵三叉树的结点数为50,则它的最小高度为( )。A3 B4 C5 D64在一棵二叉树上第5层的结点数最多为( )。A8 B16 C15 D325用顺

11、序存储的方法将完全二叉树中的所有结点逐层存放在数组R1.n中,结点Ri若有左子女,则左子女是结点( )。AR2i+1 BR2i CRi/2 DR2i-16在一棵只有k层的满三叉树中,结点总数为( )。A(3k-1)/2 B3k-1 C(3k-1)/3 D3k7由带权为9,2,5,7的四个叶了结点构造一棵哈夫曼树,该树的带权路径长度为( )。A23 B37 C46 D448在一棵高度为k的理想平衡二叉树中,最少含有( )个结点。A2k-1 B2k +l C2k -l D2k9已知10个数据元素 (50,30,15,35,70,65,95,60,25,40),按照依次插入结点的方法生成一棵二叉排序

12、树后,在查找成功的情况下,查找每个元素的平均比较次数(又称平均查找长度)为( )。A2.5 B3.2 C2.9 D2.710树B的层号表示为1a 2b,3d,3e,2c,对应于下面选择的( )。A1a(2b(3d,3e),2c) Ba(b(D,e),c)Ca(b(d,e),c) Da(b,d(e),c)11如果F是由有序树T转换而来的二叉树,那么T中结点的前序就是F中结点的( )。A中序 B前序 C后序 D层次序12任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序( )。A不发生改变 B发生改变 C不能确定 D以上都不对13欲实现任意二叉树的后序遍历的非递归算法而不必使用栈结构,最

13、佳方案是二叉树采用( )存储结构。A三叉链表 B广义表C二叉链表 D顺序14设a,b为一棵二叉树上的两个结点,在中序遍历时,a在b前的条件是( )。Aa在b右方 Ba在b左方Ca是b的祖先 Da是b的子孙15线索二叉树是一种( )结构。A逻辑 B逻辑和存储 C物理 D线性三、应用题(每题6分,共24分)1二叉树与树之间有何区别?度为2的树与二叉树有何区别?2一棵二叉树如图:写出对此树进行先序、中序、后序遍历时得到的结点序列。3已知一组元素为(45,25,80,60,18,30,12,40,70),试画出按元素输入排列顺序而生成的一棵二叉排序树。4任一棵有n个结点的二叉树,已知它有m个叶子结点。

14、证明:度为2的结点有m-1个,其他结点是度数为1的结点。四、算法编写(每题8分,共16分)1试编写一个判别表达式中开、闭括号是否配对的算法。2试写出先序遍历二叉树的递归算法。数据结构练习三(7、9章)一、填空题(每空2分,共40分)1设无向图G的顶点数为n,图G最少有 边;最多有 条边。若G为有向图,有n个顶点,则图G最少有 条边,最多有 条边。2假定一个无向图,有n个顶点e条边,则在邻接矩阵表示中,求任一个顶点度数的时间复杂度为 ,用邻接表表示中,访问一个顶点的所有邻接点的时间复杂度为 。3对于含有n个顶点e条边的无向连通图,利用普里姆算法生成最小生成树的时间复杂度为 ,利用克鲁斯卡算法生成

15、最小生成树的时间复杂度为 ,在具有n个顶点的图的生成树中,含有 条边。4对用邻接矩阵表示的图进行深度优先或广度优先搜索遍历时的时间复杂度为 ,对用邻接表表示的图进行深度或广度优先搜索遍历时的时间复杂度为 ,图的深度优先或广度优先搜索遍历的空间复杂度均为 。5在一个图G的邻接表表示中,每个顶点的邻接表中所含的结点数,对于有向图而言等于该顶点的 ;而对于无向图而言等于该顶点的 。6设有向图G有n个顶点e条边,进行拓扑排序时的总的计算时间为 。7若无向图G的顶点度数的最小值大于或等于 时,G至少有一条回路。 8假定查找有序表R011中每个元素的概率相等,则进行顺序查找的平均查找长度为 ,进行二分查找

16、时的平均查找长度为 。二、单项选择题:(每空2分,共32分)1已知一个图如下所示,则从顶点a出发按深度优先搜索遍历则可以得到的一种顶点序列为( )。A a, b, c, c, d, f B a, c, f, e, b, dC a, c, b, c, f, d D a, e, d, f, c, b2在一个图中,所有顶点的度数之和等于所有边数的( )倍。A1/2 B2 C1 D43在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的( )倍。A1/2 B2 C1 D44一个具有n个顶点的无向图中,要连通全部顶点至少需要( )条边。An Bn+l Cn/2 Dn-15关键路径是事件结点网络中的(

17、 )。A从源点到汇点的最长路径 B从源点到汇点的最短路径C最长的回路 D最短的回路6对一个具有n个顶点的图,采用邻接矩阵表示则该矩阵的大小为( )。An B(n-1)2C(n十1)2 Dn27n个顶点的强连通图至少有( )条边。An Bn-1Cn+1 Dn(n-1)8采用邻接表存储的图的深度优先遍历算法类似于二叉树的( )。A中序遍历 B先序遍历C后序遍历 D按层遍历9采用邻接表存储的图的广度优先遍历算法类似于二叉树的( )。A按层遍历 B中序遍历C后序遍历 D先序遍历10判定一个有向图是否存在回路,除了可以利用拓扑排序方法外,还可以利用( )。A求关键路径的方法 B求最短路径的Dijkstr

18、a方法C深度优先遍历算法 D宽度优先遍历算法11采用顺序查找的方法查找长度为n的线性表,则查找每个元素的平均比较次数为( )。An Bn/2 C(n+l)/2 D(n-1)/212采用二分查找的方法查找长度为n的有序表,查找每个元素时平均比较次数与对应判定树的高度(设高度2)相比较是( )。A小于 B大于 C等于 D大于等于13对线性表进行二分查找时,要求线性表必须( )。 A以顺序存储方式存储 B以链式存储方式存储 C以顺序存储方式存储,且数据元素有序 D以链式存储方式存储,且数据元素有序 14己知一个有序表为(13,18,24,35,47,50,62,83,90,115,134),当二分查

19、找值为90的元素时,查找成功的比较次数为( )。 A1 B2 C3 D4 15对于一个线性表,既要求能够进行较快的插入和删除,又要求存储结构能够反映数据元素之间的逻辑关系,则应该( )。A以顺序方式存储 B以链接方式存储 C以散列方式存储 D以上均可16如果要求一个线表既能较快地查找,又能适应动态变化的要求,则宜采用的查找方法为 ( )。A分块查找 B顺序查找 C折半查找 D基于属性查找三、应用题(共28分)1、如下图所示的带权有向图G,试回答以下问题:(10分) (1)给出从结点V1出发按深度优先搜索遍历G所得的结点序列,并给出按广度优先搜索遍历G所得的结点序列。 (2)给出G的一个拓扑序列

20、。 (3)给出从结点v1到结点v8的最短路径和关键路径2、证明具有n个顶点的无向完全图的边数为n(n-1)/2。(8分)3、已知一个长度为12的表Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec (1)试按表中元素的次序依次插入一棵初始为中的二叉排序树。 (字符之间以字典顺序比较大小)画出对应的二叉排序树,并求出在等概率情况下查找成功的平均查找长度。 (2)若对表中元素先排序构成有序表,试求在等概率情况下对此有序表进行折半查找时查找成功的平均查找长度。(10分)数据结构练习四(10章)一、填空题(每空1分,共32分)1在对一组记录(50,40,

21、95,20,15,70,60,45,80)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需比较 次。2对n个元素的序列进行冒泡排序,最少的比较次数是 ,此时元素的排列情况 ,在 的情况下比较次数最多,其比较次数为 。3在对一组记录(50,40,Q5,20,15,70,60,45,80)进行直接选择排序时,第4次交换和选择后,未排序记录(即无序表)为 。4在对一组记录(50,40,95,20,15,70,60,45,80)进行堆排序时,根据初始记录构成初始堆后,最后4条记录为 。5在对一组记录(50,40,95,20,15,70,60,45,80)进行冒泡排序时,第一趟需进

22、行相邻记录的交换的次数为 ,在整个排序过程中共需进行 趟才可完成。6在利用快速排序方法对一组记录(50,40,95,20,15,70,60,45,80)进行快速排序后递归调用使用的栈所能达到的最大深度为 ,其需递归调用的次数为 ,其中第二次递归调用是对 一组记录进行快速排序。7在归并排序中,若待排序记录的个数为20,则共需要进行 趟归并,在第三趟归并中,是把长度为 的有序表归并为长度为 的有序表。8在堆排序和快速排序中,若原始记录接近正序或反序,则选用 ,若原始记录无序,则最好选用 。9在直接插入和直接选择排序中,若初始数据基本有序,则选用 ,若初始数据基本反序,则选用 。10在堆排序,快速排

23、序和归并排序中,若从节省存储空间考虑,则应首先选取 方法,其次选取 方法,最后选取 方法:若只从扑序结果的稳定性考虑,则应选择 方法;若只从平均情况下排序的速度来考虑,则选择 方法;若只从最坏情况下排序最快并且要节省内存考虑,则应选取 方法。11在内部排序中,平均比较次数最少的是 求附加的内存容量最大的是 ,排序时不稳定的有 , , , 等几种方法二、单项选择题:(每空2分,共40分)1从未排序序列中依次取出元素与已排序序列中的元素作比较,将其放入已排序序列中的正确位置上,此方法称为( )。A归并排序 B选择排序C交换排序 D插入排序2从未排序序列中挑选元素,并将其放入己排序序列的一端,此方法

24、称为( )。A归并排序 B选择排序C交换排序 D插入排序3依次将每两个相邻的有序表合并成一个有序表的排序方法叫做( )。A归并排序 B选择排序C交换排序 D插入排序4在所有排序方法中,关键字的比较次数与记录的初始排列无关的是( )。AShell排序 B冒泡排序C直接插入排序 D直接选择排序5在直接选择排序中,记录比较次数为( )数量级。AO(n) BO(log2n) CO(n2) DO(log2n)6一组记录的关键字为(45,80,55,40,42,85),则利用堆排序的方法建立的初始堆为( )。A (80,45,55,40,42,85) B (85,80,55,40,42,45)C (85,

25、80,55,45,42,40) D (85,55,80,42,45,40)7直接插入排序和冒泡排序的时间复杂度为( )。AO(n) BO(log2n) CO(nlog2n) DO(n2)8一组记录的关键字为(45,80,55,40,42,85),则利用快速排序的方法,以第一个记录为基准得到一次划分结果是( )。A (40,42,45,55,80,85) B (42,40,45,80,55,85)C (42,40,45,55,DO,85) D (42,40,45,85,55,80)9每次把待排序的元素划分为左、右两个子区间,其中左区间中元素的关键字均小于等于基准元素的关键字,右区间中元素的关键字

26、均大于等于基准元素的关键字,则此排序方法叫做( )。A堆排序 B快速排序 C冒泡排序 DShell排序10一组记录的关键字为(25,50,15,35,80,85,20,40,36,70),其中含有5个长度为2的有序表,用归并排序方法对该序列进行一趟归并后的结果为( )。A15,25,35,50,20,40,80,85,36,70B15,25,35,50,80,20,85,40,70,36C15,25,50,35,80,85,20,36,40,70D15,25,35,50,80,20,36,40,70,8511设关键字序列为(3,7,6,9,7,1,4,5,20),对其进行排序的最小交换次数是(

27、 )。A6 B7 C8 D2012快速排序在( )情况下最易发挥其长处。A被排序的数据量很大 B被排序的数据已基本有序C被排序的数据完全无序 D被排序的数据中最大的值与最小值相差不大。三、应用题(共28分)1冒泡排序算法是否稳定? (5分)2设有15000个无序的元素,希望用最快的速度挑选出其中前10个最大元素。在以下排序方法中,快速排序,堆排序,归并排序,基数排序和Shell排序中,采用哪种方法最好并说明理由? (5分)3判断下列序列是否为堆,若不是堆,则把它们调整为堆。(4分) (100,85,95,75,80,60,82,40,20,1O,65) (100,95,85,82,80,75,65,60,40,20,10) (100,85,40,75,80,60,65,95,82,10,20) (10,20,40,60,65,75,80,82,85,95,100)

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

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