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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构复习资料.docx

1、数据结构复习资料数据结构与算法期末考试复习资料一、单项选择题( )1. 软件与程序的区别是 A. 程序价格便宜、软件价格昂贵;B. 程序是用户自己编写的,而软件是由厂家提供的;C. 程序是用高级语言编写的,而软件是由机器语言编写的;D. 软件是程序以及开发、使用和维护所需要的所有文档的总称,而程序只是软件的一部分。( )2. 应用软件是指 A. 所有能够使用的软件B. 能被各应用单位共同使用的某种软件C. 所有微机上都应使用的基本软件D. 专门为某一应用目的而编制的软件( )3. 系统软件中最重要的是 A. 操作系统 B. 语言处理系统 C. 工具软件 D. 数据库管理系统( )4. 可移植性

2、最好的计算机语言是 A. 机器语言 B. 汇编语言 C. 高级语言 D. 自然语言( )5. 非线性结构是数据元素之间存在一种: A. 一对多关系 B. 多对多关系 C. 多对一关系 D. 一对一关系( )6. 数据结构中,与所使用的计算机无关的是数据的 结构;A. 存储 B. 物理 C. 逻辑 D. 物理和存储( )7. 算法分析的目的是: A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性( )8. 算法分析的两个主要方面是: A. 空间复杂性和时间复杂性 B. 正确性和简明性C. 可读性和文档性 D. 数据复杂性和程

3、序复杂性( )9. 计算机算法指的是: A. 计算方法 B. 排序方法 C. 解决问题的有限运算序列 D. 调度方法( )10. 计算机算法必须具备输入、输出和 等5个特性。A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性 D. 易读性、稳定性和安全性( )11数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为: A. 存储结构 (B)逻辑结构 (C)顺序存储结构 (D)链式存储结构( )12.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是 A. 110 B. 108 C. 100 D. 120( )

4、13. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是: A. 访问第i个结点(1in)和求第i个结点的直接前驱(2in) B. 在第i个结点后插入一个新结点(1in)C. 删除第i个结点(1in)D. 将n个结点从小到大排序( )14. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动 个元素A.8 B.63.5 C.63 D.7( )15. 链接存储的存储结构所占存储空间: A 分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针 B 只有一部分,存放结点值C. 只有一部分,存储表示结点间关系的指针D. 分两部分,一部分存放结点值,另一部分存放结

5、点所占单元数( )16. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址: A.必须是连续的 B.部分地址必须是连续的C.一定是不连续的 D.连续或不连续都可以( )17 线性表在 情况下适用于使用链式结构实现。.需经常修改中的结点值 .需不断对进行删除插入 .中含有大量的结点 .中结点结构复杂( )18 设a1、a2、a3为3个结点,整数P0,3,4代表地址,则如下的链式存储结构称为 P034P0a13a24A30.循环链表 .单链表 .双向循环链表 .双向链表( )19. 串是一种特殊的线性表,其特殊性体现在: 可以顺序存储 数据元素是一个字符 可以链式存储 数据元素可以是多个字

6、符( )20. 设有两个串p和q,求q在p中首次出现的位置的运算称作: 连接 模式匹配 求子串 求串长( )21. 设串s1=ABCDEFG,s2=PQRST,函数con(x,y)返回x和y串的连接串,subs(s, i, j)返回串s的从序号i开始的j个字符组成的子串,len(s)返回串s的长度,则con(subs(s1, 2, len(s2), subs(s1, len(s2), 2)的结果串是: BCDEF BCDEFG BCPQRST BCDEFEF( )22. 假设有60行70列的二维数组a160, 170以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32

7、行第58列的元素a32,58的存储地址为 。(无第0行第0列元素)16902 16904 14454 答案A, B, C均不对( )23二叉树是非线性数据结构,所以 。.它不能用顺序存储结构存储; .它不能用链式存储结构存储; .顺序存储结构和链式存储结构都能存储; .顺序存储结构和链式存储结构都不能使用 ( )24把一棵树转换为二叉树后,这棵二叉树的形态是 。.唯一的 .有多种.有多种,但根结点都没有左孩子 .有多种,但根结点都没有右孩子( )25. 在一个图中,所有顶点的度数之和等于图的边数的 倍。 A1/2 B. 1 C. 2 D. 4 ( )26. 在一个有向图中,所有顶点的入度之和等

8、于所有顶点的出度之和的 倍。 A1/2 B. 1 C. 2 D. 4 ( )27. 有8个结点的无向图最多有 条边。 A14 B. 28 C. 56 D. 112 ( )28. 有8个结点的无向连通图最少有 条边。A5 B. 6 C. 7 D. 8 ( )29. 有8个结点的有向完全图有 条边。A14 B. 28 C. 56 D. 112 ( )30. 用邻接表表示图进行广度优先遍历时,通常是采用 来实现算法的。A栈 B. 队列 C. 树 D. 图 ( )31. 用邻接表表示图进行深度优先遍历时,通常是采用 来实现算法的。A栈 B. 队列 C. 树 D. 图 ( )32. 已知图的邻接矩阵,根

9、据算法思想,则从顶点0出发按深度优先遍历的结点序列是A0 2 4 3 1 5 6 B. 0 1 3 6 5 4 2 C. 0 4 2 3 1 6 5 D. 0 3 6 1 5 4 2( )33. 已知图的邻接矩阵同上题32,根据算法,则从顶点0出发,按广度优先遍历的结点序列是A 0 2 4 3 6 5 1 B. 0 1 3 6 4 2 5 C. 0 4 2 3 1 5 6 D. 0 1 3 4 2 5 6( )34. 已知图的邻接表如下所示,根据算法,则从顶点0出发按深度优先遍历的结点序列是A0 1 3 2 B. 0 2 3 1 C. 0 3 2 1 D. 0 1 2 3( )35. 已知图的

10、邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是A0 3 2 1 B. 0 1 2 3 C. 0 1 3 2 D. 0 3 1 2( )36. 深度优先遍历类似于二叉树的A先序遍历 B. 中序遍历 C. 后序遍历 D. 层次遍历( )37. 广度优先遍历类似于二叉树的A先序遍历 B. 中序遍历 C. 后序遍历 D. 层次遍历( )38在表长为的链表中进行线性查找,它的平均查找长度为. ; . (); . ; . ()( )39折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找表中元素58,则它将依次与表中 比较大小,查找结果是失败。A20,70

11、,30,50 B30,88,70,50 C20,50 D30,88,50( )40对22个记录的有序表作折半查找,当查找失败时,至少需要比较 次关键字。A3 B4 C5 D 6( )41. 链表适用于 查找A顺序 B二分法 C顺序,也能二分法 D随机( )42. 折半搜索与二叉搜索树的时间性能 A. 相同 B. 完全不同 C. 有时不相同 D. 数量级都是O(log2n)( )43将5个不同的数据进行排序,至多需要比较 次。. 8 . 9 . 10 . 25( )44 排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为.

12、 希尔排序 . 冒泡排序 . 插入排序 . 选择排序( )45 排序方法中,从未排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)的一端的方法,称为. 希尔排序 . 归并排序 . 插入排序 . 选择排序( )46对个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多。. 从小到大排列好的 . 从大到小排列好的 . 元素无序 . 元素基本有序( )47对个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数为. n+1 . n . n-1 . n(n-1)/2( )48快速排序在下列哪种情况下最易发挥其长处。. 被排序的数据中含有多个相同排序码 . 被排序的数据已基本有序. 被排

13、序的数据完全无序 . 被排序的数据中的最大值和最小值相差悬殊( )49 对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是AO(n) BO(n2) CO(nlog2n) DO(n3)( )50若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为. 38, 40, 46, 56, 79, 84 . 40,38, 46 , 79, 56, 84 . 40, 38,46, 56, 79, 84 . 40, 38,46, 84, 56, 79( )51将5个不同的数据进行排序,至少需要比较 次。. 4 . 5 .

14、6 . 7( )52下列关键字序列中, 是堆。. 16,72,31,23,94,53 . 94,23, 31, 72, 16, 53 . 16, 53, 23,94,31, 72 . 16, 23, 53,31, 94, 72( )53堆是一种 排序。. 插入 .选择 . 交换 . 归并( )54堆的形状是一棵 . 二叉排序树 .满二叉树 . 完全二叉树 . 平衡二叉树( )55若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为. 79, 46, 56, 38, 40, 84 . 84, 79, 56, 38, 40, 46 . 84, 79

15、, 56, 46, 40, 38 . 84, 56, 79, 40, 46, 38 ( )56 下述几种排序方法中,平均查找长度(ASL)最小的是 . 插入排序 .快速排序 . 归并排序 . 选择排序( )57 下述几种排序方法中,要求内存最大的是 . 插入排序 .快速排序 . 归并排序 . 选择排序( )58目前以比较为基础的内部排序方法中,其比较次数与待排序的记录的初始排列状态无关的是 . 插入排序 . 二分插入排序 . 快速排序 . 冒泡排序二、填空题1.数据结构是一门研究非数值计算的程序设计问题中计算机的 以及它们之间的 和运算等的学科。2.数据结构被形式地定义为(D, R),其中D是

16、 的有限集合,R是D上的 有限集合。3.数据结构包括数据的 、数据的 和数据的 这三个方面的内容。4.数据结构按逻辑结构可分为两大类,它们分别是 和 。5.线性结构中元素之间存在 关系,树形结构中元素之间存在 关系,图形结构中元素之间存在 关系。6.在线性结构中,第一个结点 前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点 后续结点,其余每个结点有且只有1个后续结点。7.在树形结构中,树根结点没有 结点,其余每个结点有且只有 个前驱结点;叶子结点没有 结点,其余每个结点的后续结点数可以 。8.在图形结构中,每个结点的前驱结点数和后续结点数可以 。9数据的存储结构可用四种基本的存储方法

17、表示,它们分别是 10.数据的运算最常用的有5种,它们分别是 11.一个算法的效率可分为 效率和 效率。12.在顺序表中插入或删除一个元素,需要平均移动 元素,具体移动的元素个数与 有关。13.线性表中结点的集合是 的,结点间的关系是 的。14.向一个长度为n的向量的第i个元素(1in+1)之前插入一个元素时,需向后移动 个元素。15.向一个长度为n的向量中删除第i个元素(1in)时,需向前移动 个元素。16.在顺序表中访问任意一结点的时间复杂度均为 ,因此,顺序表也称为 的数据结构。17.顺序表中逻辑上相邻的元素的物理位置 相邻。单链表中逻辑上相邻的元素的物理位置 相邻。18.在单链表中,除

18、了首元结点外,任一结点的存储位置由 指示。19.在n个结点的单链表中要删除已知结点*p,需找到它的 ,其时间复杂度为 。20.栈是一种特殊的线性表,允许插入和删除运算的一端称为 。不允许插入和删除运算的一端称为 。21. 是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。22.在一个循环队列中,队首指针指向队首元素的 位置。23.在具有n个单元的循环队列中,队满时共有 个元素。24.向栈中压入元素的操作是先 ,后 。 25.从循环队列中删除一个元素时,其操作是 先 ,后 。26. 称为空串; 称为空白串。27.设S=“A;/document/Mary.doc”,则strl

19、en(s)= , “/”的字符定位的位置为 。28.子串的定位运算称为串的模式匹配; 称为目标串, 称为模式。29.设目标T=”abccdcdccbaa”,模式P=“cdcc”,则第 次匹配成功。30.若n为主串长,m为子串长,则串的古典(朴素)匹配算法最坏的情况下需要比较字符的总次数为 。31.假设有二维数组A68,每个元素用相邻的6个字节存储,存储器按字节编址。已知A的起始存储位置(基地址)为1000,则数组A的体积(存储量)为 个字节;末尾元素A57的第一个字节地址为 ;若按行存储时,元素A14的第一个字节地址为 ;若按列存储时,元素A47的第一个字节地址为 。32.设数组a160, 1

20、70的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a32,58的存储地址为 。33.三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的 、 和 。34.求下列广义表操作的结果:(1) GetHead【(a,b),(c,d)】= ; /头元素不必加括号(2) GetHead【GetTail【(a,b),(c,d)】= ;(3) GetHead【GetTail【GetHead【(a,b),(c,d)】= ;(4) GetTail【GetHead【GetTail【(a,b),(c,d)】= ;35.一棵深度为6的满二叉树有 个分支结点

21、和 个叶子。36.一棵具有257个结点的完全二叉树,它的深度为 。37.设一棵完全二叉树具有1000个结点,则此完全二叉树有 个叶子结点,有 个度为2的结点,有 个结点只有非空左子树,有 个结点只有非空右子树。38.用5个权值3, 2, 4, 5, 1构造的哈夫曼(Huffman)树的带权路径长度是 。39.图有 、 等存储结构,遍历图有 、 等方法。40.有向图G用邻接表矩阵存储,其第i行的所有元素之和等于顶点i的 。41.n个顶点e条边的图,若采用邻接矩阵存储,则空间复杂度为 。42.n个顶点e条边的图,若采用邻接表存储,则空间复杂度为 。43.设有一稀疏图G,则G采用 存储较省空间。44

22、.设有一稠密图G,则G采用 存储较省空间。45.图的逆邻接表存储结构只适用于 图。46.已知一个图的邻接矩阵表示,删除所有从第i个顶点出发的边的方法是 。47.n个顶点e条边的图采用邻接矩阵存储,深度优先遍历算法的时间复杂度为 ;若采用邻接表存储时,该算法的时间复杂度为 。48.n个顶点e条边的图采用邻接矩阵存储,广度优先遍历算法的时间复杂度为 ;若采用邻接表存储,该算法的时间复杂度为 。49.图的BFS生成树的树高比DFS生成树的树高 。50.用普里姆(Prim)算法求具有n个顶点e条边的图的最小生成树的时间复杂度为 ;用克鲁斯卡尔(Kruskal)算法的时间复杂度是 。51.若要求一个稀疏

23、图G的最小生成树,最好用 算法来求解。52.若要求一个稠密图G的最小生成树,最好用 算法来求解。53.用Dijkstra算法求某一顶点到其余各顶点间的最短路径是按路径长度 的次序来得到最短路径的。54.拓扑排序算法是通过重复选择具有 个前驱顶点的过程来完成的。55.在数据的存放无规律而言的线性表中进行检索的最佳方法是 。56.线性有序表(a1,a2,a3,a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索 次。设有100个结点,用二分法查找时,最大比较次数是 。57.假设在有序线性表a20上进行折半查找,则比较一次查找成功的结点数为

24、1;比较两次查找成功的结点数为 ;比较四次查找成功的结点数为 ;平均查找长度为 。58.折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 比较大小。59.散列法存储的基本思想是由 决定数据的存储地址。60.有一个表长为m的散列表,初始状态为空,现将n(nm)个不同的关键码插入到散列表中,解决冲突的方法是用线性探测法。如果这n个关键码的散列地址都相同,则探测的总次数是 。(而任一元素查找次数 n-1)61.考虑具有如下性质的二叉树:除叶子结点外,每个结点的值都大于其左子树上的一切结点的值。并小于等于其右子树上的一切结点的值。现把9

25、个数1,2,3,8,9填入右图所示的二叉树的9个结点中,并使之具有上述性质。此时,n1的值是 ,n2的值是 ,n9的值是 。现欲把放入此树并使该树保持前述性质,增加的一个结点可以放在 或 。62.大多数排序算法都有两个基本的操作: 和 。63.在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置至少需比较 次。(可约定为,从后向前比较)64.在插入和选择排序中,若初始数据基本正序,则选用 ;若初始数据基本反序,则选用 。65.在堆排序和快速排序中,若初始记录接近正序或反序,则选用 ;若初始记录基本无序,则最好选

26、用 。66.对于n个记录的集合进行冒泡排序,在最坏的情况下所需要的时间是 。若对其进行快速排序,在最坏的情况下所需要的时间是 。67.对于n个记录的集合进行归并排序,所需要的平均时间是 ,所需要的附加空间是 。68对于n个记录的表进行2路归并排序,整个归并排序需进行 趟(遍),共计移动 次记录。69.设要将序列(Q, H, C, Y, P, A, M, S, R, D, F, X)中的关键码按字母序的升序重新排列,则:冒泡排序一趟扫描的结果是 ;初始步长为4的希尔(shell)排序一趟的结果是 ;二路归并排序一趟扫描的结果是 ;快速排序一趟扫描的结果是 ;堆排序初始建堆的结果是 。70. 在堆

27、排序、快速排序和归并排序中,若只从存储空间考虑,则应首先选取 方法,其次选取 方法,最后选取 方法;若只从排序结果的稳定性考虑,则应 选取 方法;若只从平均情况下最快考虑,则应选取 方法;若只从最坏情况下最快并且要节省内存考虑,则应选取 方法。三、应用题1.分析下面各程序段的时间复杂度(每小题5分,共20分)(1) for (i=0; in; i+)for (j=0; jm; j+)Aij=0; (2) s=0; for i=0; in; i+)for(j=0; jn; j+) s+=Bij;sum=s; (3) x=0;for(i=1; in; i+) for (j=1; j=n-i; j+

28、)x+; (4) i=1; while(i=n) i=i*3;2.设有数据逻辑结构S=(D,R),试按各小题所给条件画出这些逻辑结构的图示,并确定相对于关系R,哪些结点是开始结点,哪些结点是终端结点? (1) D=d1,d2,d3,d4 R=(d1,d2),(d2,d3),(d3,d4) (2) D=d1,d2,d9 R=(d1,d2),(d1,d3),(d3,d4),(d3,d6),(d6,d8),(d4,d5), (d6,d7),(d8,d9) (3) D=d1,d2,d9 R=(d1,d3),(d1,d8),(d2,d3),(d2,d4),(d2,d5),(d3,d9), (d5,d6)

29、,(d8,d9),(d9,d7), (d4,d7), (d4,d6) 3画出如图所示二叉树的存储表示,分别使用 (1) 顺序表示 (2) 二叉链表表示法(3)三叉链表。4.把如图所示的树转化成二叉树。5.画出和下列二叉树相应的森林。6. 假设用于通信的电文仅由8个字母组成,字母在电文中出现的频率分别为0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10。试为这8个字母设计哈夫曼编码。使用07的二进制表示形式是另一种编码方案。对于上述实例,比较两种方案的优缺点。7. 给出右图的邻接矩阵、邻接表和逆邻接表表示。8.已知二维数组表示的图的邻接矩阵如下图所示。试分别画出自顶点1出发进行遍历所得的深度优先生成树和广度优先生成树。9以下图为例,按Dijkstra算法计算得到的从顶点A到其它各个顶点的最短路径和最短路径长度。10. 试对右图

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

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