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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构重点复习内容.docx

1、数据结构重点复习内容数据结构重点复习内容 教材P143-P147:树、森林与二叉树的相互转换,并做一到两个练习,如教材P154的6.11并求各树与森林的各种遍历序列;教材P147-P151:哈夫曼树,并做一到两个练习,如教材P153的6.9并计算其WPL;教材P160-P165:图的邻接矩阵与邻接表的定义及其图的建立算法,可参考实验内容;教材P168-P171:图的深度优先遍历算法的实现;教材P175-P179:最小生成树,并做一到两个练习,要求会根据一个图的邻接矩阵,画出图,并求出其最小生成树,且过程要完整;教材P197-P200:顺序查找、二分查找算法的实现,可参考实验内容;教材P224-

2、P231:哈希查找,并做一到两个练习,如教材P232的8.5;教材P2414-P242:冒泡排序算法的实现,可参考实验内容;各章知识的总结。数据结构复习要点一基础知识(一)述论1数据结构、逻辑结构、存储结构和算法的定义;2逻辑结构、存储结构的分类与特点;3算法的特征与评价标准;4时间与空间复杂度的定义;5算法的描述形式。(二)线性结构1线性结构的定义与特点;2线性表的定义和特点;3线性表的两种存储结构的定义;4栈与队列的定义与操作特点;5栈与队列的存储结构的定义。(三)树结构1树结构的定义与特点;2树结构的基本术语;3二叉树的定义与特点;4二叉树的性质;5树与二叉树的存储结构;(四)图结构1图

3、结构的定义与特点;2图结构的基本术语;3图的存储结构;4最小生成树、AOE、AOV。(五)查找与排序1查找与排序的定义与分类;2查找与排序的存储结构。二方法与技术1线性表的查找、建立、插入和删除操作的实现与分析,特别是头、尾插入法建立单链表的算法(重点);2顺序栈与循环队列的基本操作。3二叉树的有关操作的递归实现,比如建立二叉树(重点);4二叉树的四种遍历、树与森林的遍历、森林与二叉树的转换(重点);5哈夫曼树的建立与WPL的计算(重点);6.图的邻接矩阵和邻接表存储结构下的图的建立算法的实现(重点);7.图的邻接矩阵和邻接表存储结构下的图的深度优先遍历算法的实现(重点);8求最小生成树的方法

4、(重点);9顺序查找与二分查找算法的实现(重点);10哈希查找方法与平均查找长度的计算(重点);11冒泡排序数据结构-排序 数据结构-排序 一、单项选择题1下列内部排序算法中:A快速排序 B.直接插入排序 C. 二路归并排序 D. 简单选择排序 E. 起泡排序 F. 堆排序(1) 其比较次数与序列初态无关的算法是( ) (2)不稳定的排序算法是( )(3)在初始序列已基本有序(除去n个元素中的某k个元素后即呈有序,kn)的情况下,排序效率最高的算法是( )(4)排序的平均时间复杂度为O(n?logn)的算法是( )为O(n?n)的算法是( )2比较次数与排序的初始状态无关的排序方法是( )。A

5、直接插入排序 B起泡排序 C快速排序 D简单选择排序3对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1) 84 47 25 15 21 (2) 15 47 25 84 21 (3) 15 21 25 84 47 (4) 15 21 25 47 84则采用的排序是 ( )。A. 选择 B. 冒泡 C. 快速 D. 插入4下列排序算法中( )排序在一趟结束后不一定能选出一个元素放在其最终位置上。A. 选择 B. 冒泡 C. 归并 D. 堆5一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为(

6、 )。A(38,40,46,56,79,84) B. (40,38,46,79,56,84)C(40,38,46,56,79,84) D. (40,38,46,84,56,79)6下列排序算法中,在待排序数据已有序时,花费时间反而最多的是( )排序。 A 冒泡 B. 希尔 C. 快速 D. 堆7. 就平均性能而言,目前最好的内排序方法是( )排序法。A. 冒泡 B. 希尔插入 C. 交换 D. 快速8. 下列排序算法中,占用辅助空间最多的是:( )A. 归并排序 B. 快速排序 C. 希尔排序 D. 堆排序9. 若用冒泡排序方法对序列10,14,26,29,41,52从大到小排序,需进行 (

7、)次比较。A. 3 B. 10 C. 15 D. 25 10. 快速排序方法在( )情况下最不利于发挥其长处。A. 要排序的数据量太大 B. 要排序的数据中含有多个相同值C. 要排序的数据个数为奇数 D. 要排序的数据已基本有序11下列四个序列中,哪一个是堆( )。A. 75,65,30,15,25,45,20,10 B. 75,65,45,10,30,25,20,15C. 75,45,65,30,15,25,20,10 D. 75,45,65,10,25,30,20,1512. 有一组数据(15,9,7,8,20,-1,7,4),用堆排序的筛选方法建立的初始堆为 ( )A-1,4,8,9,2

8、0,7,15,7 B-1,7,15,7,4,8,20,9C-1,4,7,8,20,15,7,9 DA,B,C均不对。 二、填空题1.若待排序的序列中存在多个记录具有相同的键值,经过排序,这些记录的相对次序仍然保持不变,则称这种排序方法是_的,否则称为_的。 2.按照排序过程涉及的存储设备的不同,排序可分为_排序和_排序。 3直接插入排序用监视哨的作用是_。 4对n个记录的表r1.n进行简单选择排序,所需进行的关键字间的比较次数为_。 5下面的c函数实现对链表head进行选择排序的算法,排序完毕,链表中的结点按结点值从小到大链接。请在空框处填上适当内容,每个空框只填一个语句或一个表达式:#inc

9、lude typedef struct node char data; struct node *link; node;node *select(node *head)node *p,*q,*r,*s;p=(node *)malloc(sizeof(node); p-link=head; head=p;while(p-link!=null) q=p-link; r=p; while (1)_) if (q-link-datalink-data) r=q; q=q-link; if (2)_) s=r-link; r-link=s-link;s-link= (3)_); (4)_); (5)_)

10、 ; p=head; head=head-link; free(p); return(head); 6下面的排序算法的思想是:第一趟比较将最小的元素放在r1中,最大的元素放在rn中,第二趟比较将次小的放在r2中,将次大的放在rn-1中,,依次下去,直到待排序列为递增序。(注:)代表两个变量的数据交换)。void sort(SqList &r,int n) i=1;while(1)_) min=max=1;for (j=i+1;(2)_ ;+j) if(3)_) min=j; else if(rj.keyrmax.key) max=j; if(4)_) rmin rj;if(max!=n-i+1

11、)if (5)_) rmin rn-i+1; else (6)_); i+;/sort 7下列算法为奇偶交换排序,思路如下:第一趟对所有奇数的i,将ai和ai+1进行比较,第二趟对所有偶数的i,将ai和ai+1进行比较,每次比较时若aiai+1,将二者交换;以后重复上述二趟过程,直至整个数组有序。void oesort (int an)int flag,i,t; do flag=0;for(i=1;iai+1) flag=(1)_; t=ai+1; ai+1=ai; (2)_;for (3)_ if (aiai+1) flag=(4)_;t=ai+1; ai+1=ai; ai=t; while

12、 (5)_; 三、应用题1对于给定的一组键值:83,40,63,13,84,35,96,57,39,79,61,15,分别画出应用直接插入排序、直接选择排序、快速排序、堆排序、归并排序对上述序列进行排序中各趟的结果。 2判断下列序列是否是堆(可以是小堆,也可以是大堆,若不是堆,请将它们调整为堆)。 (1)100,85,98,77,80,60,82,40,20,10,66 (2)100,98,85,82,80,77,66,60,40,20,10 (3)100,85,40,77,80,60,66,98,82,10,20(4)10,20,40,60,66,77,80, 82,85,98,100 3填

13、空并回答相关问题(1)下面是将任意序列调整为最大堆(MAX HEAP)的算法,请将空白部分填上:将任意序列调整为最大堆通过不断调用adjust函数,即:FOR(i=n/2;i 0;i- -)adjust(list,i,n);其中list为待调整序列所在数组(从下标1开始),n为序列元素个数,adjust函数为:void adjust(int list,int root,int n)/*将以root为下标的对应元素作为待调整堆的根,待调整元素放在list数组中,最大元素下标为n*/int child,rootkey;rootkey=listroot;child=2*root;while(chil

14、d=n)if(childn)&(listchildlistchild) break; elseList(2) =listchild; child*=2; listchild/2=rootkey; (2)判断下列序列能否构成最大堆:(12,70,33,65,24,56,48,92,86,33);若不能按上述算法将其调整为堆,调整后的结果为:( )。数据结构习题-查找 一、单项选择题1顺序查找法适合于存储结构为( )的线性表。A 散列存储 B. 顺序存储或链式存储 C. 压缩存储 D. 索引存储2.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度

15、ASL为( )。 A (n-1)/2 B. n/2 C. (n+1)/2 D. n3适用于折半查找的表的存储方式及元素排列要求为( ) A链接方式存储,元素无序 B链接方式存储,元素有序C顺序方式存储,元素无序 D顺序方式存储,元素有序4当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( ) A必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减5当采用分块查找时,数据的组织方式为 ( ) A数据分成若干块,每块内数据有序B数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块C. 数据分成若

16、干块,每块内数据有序,每块内最大(或最小)的数据组成索引块D. 数据分成若干块,每块(除最后一块外)中数据个数需相同6二叉树为二叉排序树的充分必要条件是其任一结点的值均大于其左孩子的值、小于其右孩子的值。这种说法( )。A正确 B. 错误7. 二叉查找树的查找效率与二叉树的((1) )有关, 在 ((2) )时其查找效率最低。 (1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置 (2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。8如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则可采用( )查找法。A. 分快查找 B. 顺序查找 C. 折

17、半查找 D. 基于属性9分别以下列序列构造二叉排序树,与用其它三个序列所构造的结果不同的是( )。A(100,80, 90, 60, 120,110,130) B.(100,120,110,130,80, 60, 90)C.(100,60, 80, 90, 120,110,130) D. (100,80, 60, 90, 120,130,110)10下图所示的4棵二叉树,( )是平衡二叉树。 (A) (B) (C) (D)11散列表的平均查找长度( )。A 与处理冲突方法有关而与表的长度无关B 与处理冲突方法无关而与表的长度有关C 与处理冲突方法有关且与表的长度有关D 与处理冲突方法无关且与表

18、的长度无关12. 设有一组记录的关键字为19,14,23,1,68,20,84,27,55,11,10,79,用链地址法构造散列表,散列函数为H(key)=key MOD 13,散列地址为1的链中有( )个记录。A1 B. 2 C. 3 D. 413. 关于杂凑查找说法不正确的有几个( ) (1)采用链地址法解决冲突时,查找一个元素的时间是相同的 (2)采用链地址法解决冲突时,若插入规定总是在链首,则插入任一个元素的时间是相同的 (3)用链地址法解决冲突易引起聚集现象 (4)再哈希法不易产生聚集A. 1 B. 2 C. 3 D. 414. 设哈希表长为14,哈希函数是H(key)=key%11

19、,表中已有数据的关键字为15,38,61,84共四个,现要将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是( ) A8 B3 C5 D915. 将10个元素散列到100000个单元的哈希表中,则( )产生冲突。A. 一定会 B. 一定不会 C. 仍可能会 二、填空题1. 顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为_ _次;当使用监视哨时,若查找失败,则比较关键字的次数为_ _。 2. 在顺序表(8,11,15,19,25,26,30,33,42,48,50)中,用二分(折半)法查找关键码值20,需做的关键码比较次数为_. 3一个无序序列可以通过构造一

20、棵_ _ _ _树而变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。 4. 哈希表是通过将查找码按选定的_ _和 _ _,把结点按查找码转换为地址进行存储的线性表。哈希方法的关键是_ _和 _ _。一个好的哈希函数其转换地址应尽可能_ _,而且函数运算应尽可能_ _。 5. 平衡二叉树又称_,其定义是_ _。 6. 在哈希函数H(key)=key%p中,p值最好取_。 7假定有k个关键字互为同义词,若用线性探测再散列法把这k个关键字存入散列表中,至少要进行_次探测。 8. _法构造的哈希函数肯定不会发生冲突。 9. 动态查找表和静态查找表的重要区别在于前者包含有_和_运算,而后者不

21、包含这两种运算。 10在散列存储中,装填因子的值越大,则_ _;的值越小,则_ _。 11. 已知N元整型数组a存放N个学生的成绩,已按由大到小排序,以下算法是用对分(折半)查找方法统计成绩大于或等于X分的学生人数,请填空使之完善。#define N /*学生人数*/int uprx(int aN,int x ) /*函数返回大于等于X分的学生人数*/ int head=1,mid,rear=N; do mid=(head+rear)/2;if(x=amid) _(1) _ else _(2)_ _;while(_(3)_ _);if (aheadx) return head-1;return

22、 head; 三、应用题1HASH方法的平均查找路长决定于什么? 是否与结点个数N有关? 处理冲突的方法主要有哪些? 2. 设有一组关键字9,01,23,14,55,20,84,27,采用哈希函数:H(key)=key mod 7 ,表长为10,用开放地址法的二次探测再散列方法Hi=(H(key)+di) mod 10(di=12,22,32,)解决冲突。要求:对该关键字序列构造哈希表,并计算查找成功的平均查找长度。 3. 选取哈希函数(key)=key mod 7,用链地址法解决冲突。试在-的散列地址空间内对关键字序列31,23,17,27,19,11,13,91,61,41构造哈希表,并计

23、算在等概率下成功查找的平均查找长度。 4. 输入一个正整数序列(53,17,12,66,58,70,87,25,56,60),试完成下列各题。(1) 按次序构造一棵二叉排序树BS。(2) 依此二叉排序树,如何得到一个从大到小的有序序列?(3) 画出在此二叉排序树中删除“66”后的树结构。 5. 直接在二叉排序树中查找关键字K与在中序遍历输出的有序序列中查找关键字K,其效率是否相同?输入关键字有序序列来构造一棵二叉排序树,然后对此树进行查找,其效率如何?为什么? 习题 图 一、单项选择题1.设有无向图G=(V,E)和G=(V,E),如G为G的生成树,则下面不正确的说法是( )AG为G的子图 BG

24、为G的连通分量 CG为G的极小连通子图且V=V DG是G的无环子图2.任何一个带权的无向连通图的最小生成树( )A只有一棵 B有一棵或多棵 C一定有多棵 D可能不存在3以下说法正确的是( )A连通分量是无向图中的极小连通子图。B强连通分量是有向图中的极大强连通子图。C在一个有向图的拓扑序列中,若顶点a在顶点b之前,则图中必有一条弧。D对有向图G,如果从任意顶点出发进行一次深度优先或广度优先搜索能访问到每个顶点,则该图一定是完全图。4图中有关路径的定义是( )。A由顶点和相邻顶点序偶构成的边所形成的序列 B由不同顶点所形成的序列C由不同边所形成的序列 D上述定义都不是5设无向图的顶点个数为n,则

25、该图最多有( )条边。An-1 Bn(n-1)/2 C n(n+1)/2 D0 En26要连通具有n个顶点的有向图,至少需要( )条边。An-l Bn Cn+l D2n7在一个无向图中,所有顶点的度数之和等于所有边数( )倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的( )倍。A1/2 B2 C1 D48下列哪一种图的邻接矩阵是对称矩阵?( )A有向图 B无向图 CAOV网 DAOE网9. 下列说法不正确的是( )。A图的遍历是从给定的源点出发每一个顶点仅被访问一次 B遍历的基本算法有两种:深度遍历和广度遍历 C图的深度遍历不适用于有向图D图的深度遍历是一个递归过程10下面哪一方

26、法可以判断出一个有向图是否有环(回路):A深度优先遍历 B. 拓扑排序 C. 求最短路径 D. 求关键路径11. 在图采用邻接表存储时,求最小生成树的 Prim 算法的时间复杂度为( )。A. O(n) B. O(n+e) C. O(n2) D. O(n3)12已知有向图G=(V,E),其中V=V1,V2,V3,V4,V5,V6,V7,E=,G的拓扑序列是( )。AV1,V3,V4,V6,V2,V5,V7 BV1,V3,V2,V6,V4,V5,V7CV1,V3,V4,V5,V2,V6,V7 DV1,V2,V5,V3,V4,V6,V713. 在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下

27、列情形不可能出现的是( )。 AG中有弧 BG中有一条从Vi到Vj的路径 CG中没有弧 DG中有一条从Vj到Vi的路径 14. 关键路径是事件结点网络中( )。A从源点到汇点的最长路径 B从源点到汇点的最短路径C最长回路 D最短回路15下列关于AOE网的叙述中,不正确的是( )。A关键活动不按期完成就会影响整个工程的完成时间B任何一个关键活动提前完成,那么整个工程将会提前完成C所有的关键活动提前完成,那么整个工程将会提前完成D某些关键活动提前完成,那么整个工程将会提前完成 二、填空题1具有10个顶点的无向图,边的总数最多为_。 2. 设无向图 G 有n 个顶点和e 条边,每个顶点Vi 的度为d

28、i(1=i=n),则e=_ 3. 在有n个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要_条弧。 4下图中的强连通分量的个数为_个。 5N个顶点的连通图用邻接矩阵表示时,该矩阵至少有_个非零元素。 6. 在有向图的邻接矩阵表示中,计算第I个顶点入度的方法是_ _。 7. 对于一个具有n个顶点e条边的无向图的邻接表的表示,则表头向量大小为_,邻接表的边结点个数为_。 8. 已知一无向图G=(V,E),其中V=a,b,c,d,e E=(a,b),(a,d),(a,c),(d,c),(b,e)现用某一种图遍历方法从顶点a开始遍历图,得到的序列为abecd,则采用的是_遍历方法。 9构造连通网最小生成树的两个典型算法是_ _。 10. 有向图G可拓扑排序的判别条件是_ _。 11. Di

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

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