




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构复习题一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的 以及它们之间的 关系 和运算等的学科。2. 数据结构包括数据的 、数据的 和数据的 等三个方面的内容。3. 数据结构按逻辑结构可分为两大类,它们分别是 和 。4从逻辑关系上讲,数据结构主要分为 、 、 和 。5. 线性结构中元素之间存在 关系,树形结构中元素之间存在 关系。6 在线性结构中,第一个结点 前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点 后续结点,其余每个结点有且只有1个后续结点。7. 在树形结构中,树根结点没有 结点,其余每个结点有且只有 个前驱结点;叶子结点没有 结点,其余每个结点的后续结点数可以 。8. 在图形结构中,每个结点的前驱结点数和后续结点数可以 。9数据的存储结构常用的有两种,它们分别是 存储结构和 存储结构。10在顺序表中插入或删除一个元素,需要平均移动 元素,具体移动的元素个数与 有关。11. 在顺序表中访问任意一结点的时间复杂度均为 ,因此,顺序表也称为 的数据结构。12. 顺序表中逻辑上相邻的元素的物理位置 相邻。单链表中逻辑上相邻的元素的物理位置 相邻。在双链表中,每个结点设置了两个指针域,其中一个指向 结点,另一个指向 结点。13.线性表、栈和队列都是 结构,可以在线性表的 位置插入和删除元素;对于栈只能在 插入和删除元素;对于队列只能在 插入和 删除元素。14. 栈是一种特殊的线性表,允许插入和删除运算的一端称为 。不允许插入和删除运算的一端称为 。15. 是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。16. 栈和队列是两种特殊的线性表,栈的操作特性是后进先出,队列的操作特性是 ,栈和队列的主要区别在于对 。17顺序栈或链栈进行插入和删除操作的时间复杂度分别是 ,顺序队列或链队列进行插入和删除操作的时间复杂度都是 。18. 称为空串; 称为空白串。19. 子串的定位运算称为串的模式匹配; 称为目标串, 称为模式。20两个串相等的充分必要条件是 。21. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的 、 和 。22一棵深度为6的满二叉树有 个分支结点和 个叶子结点。23. 设一棵完全二叉树具有1000个结点,则此完全二叉树有 个叶子结点,有 个度为2的结点,有 个结点只有非空左子树,有 个结点只有非空右子树。24一棵具有257个结点的完全二叉树,它的深度为 。25设一棵完全二叉树有700个结点,则共有 个叶子结点。26一棵二叉树的第i(i1)层最多有2i-1个结点;一棵有n(n0)个结点的满二叉树共有 个叶子结点和 个非终端结点。27深度为k的二叉树中,所含叶子的个数最多为 。28在具有n个结点的二叉链表中,共有 个指针域,其中 个指针域用于指向其左右孩子, 剩下的 个指针域则是空的。29. 图的存储结构主要有两种,分别是 、 等存储结构,遍历图有 、 等方法。30. 有向图G用邻接表矩阵存储,其第i行的所有元素之和等于顶点i的 。31. 设有一稀疏图G,则G采用 存储较省空间。32. 设有一稠密图G,则G采用 存储较省空间。33设无向图G中顶点数为n,则图G至少有 条边,至多有 条边;若G为有向图,则至少有 条边,至多有 条边。34图的深度优先遍历类似于树的 编历,它所用到的数据结构是 ;图的广度优先遍历类似于树的 遍历,它所用到的数据结构是 。35数据的存放无规律而言的线性表中进行检索的最佳方法是 。36. 假设在有序线性表a20上进行折半查找,则比较一次查找成功的结点数为1;比较两次查找成功的结点数为 ;比较四次查找成功的结点数为 ;平均查找长度为 。37折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素 比较大小。38. 在各种查找方法中,平均查找长度与结点个数n无关的查找方法是 。39. 散列法存储的基本思想是由 决定数据的存储地址。40. 大多数排序算法都有两个基本的操作: 和 。41. 在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置至少需比较 次。 42. 在插入和选择排序中,若初始数据基本正序,则选用 ;若初始数据基本反序,则选用 。43. 在堆排序和快速排序中,若初始记录接近正序或反序,则选用 ;若初始记录基本无序,则最好选用 。44. 对于n个记录的集合进行冒泡排序,在最坏的情况下所需要的时间是 。若对其进行快速排序,在最坏的情况下所需要的时间是 。45. 对于n个记录的集合进行归并排序,所需要的平均时间是 ,所需要的附加空间是 。46. 设要将序列(Q, H, C, Y, P, A, M, S, R, D, F, X)中的关键码按字母序的升序重新排列,则:冒泡排序一趟扫描的结果是 ;初始步长为4的希尔(shell)排序一趟的结果是 ;二路归并排序一趟扫描的结果是 ;快速排序一趟扫描的结果是 ;堆排序初始建堆的结果是 。48.、一个稀疏矩阵(5行6列)如下图所示,写出对应的三元组顺序表。1432485595630 0 0 3 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 0 14324855956314324855956314324855956314324855956314324855956349、用广义表的取表头head和取表尾tail的运算,从广义表LS=(b,c,(f),(d)中分解出原子c的操作为( )。二、单项选择题1. 图形结构是数据元素之间存在一种( )。A. 一对多关系 B. 多对多关系 C. 多对一关系 D. 一对一关系2. 数据结构中,与所使用的计算机无关的是数据的( )结构。A. 存储 B. 物理 C. 逻辑 D. 物理和存储3. 算法分析的目的是( )。A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进 D. 分析算法的易懂性和文档性4. 算法分析的两个主要方面是( )。A. 空间复杂性和时间复杂性 B. 正确性和简明性C. 可读性和文档性 D. 数据复杂性和程序复杂性5. 计算机算法指的是( )。A. 计算方法 B. 数据处理方法 C. 对特定问题求解步骤的一种描述,是指令的有限序列 D. 计算机程序6. 顺序存储结构中数据元素之间的逻辑关系是由( )表示的,链接存储结构中的数据元素之间的逻辑关系是由( )表示的。A. 线性结构 B. 非线性结构 C. 存储位置 D. 指针7. 链接存储结构中的数据元素之间的逻辑关系是由( )表示的。A. 线性结构 B. 非线性结构 C. 存储位置 D. 指针8数据在计算机存储器内存储时,物理地址与逻辑地址相同并且是连续的,称之为( )。A. 存储结构 B. 逻辑结构 C. 顺序存储结构 D. 链接存储结构9. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动( )个元素A. 8 B. 63.5 C. 63 D. 710. 链接存储的存储结构所占存储空间( )。A. 分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针B. 只有一部分,存放结点值C. 只有一部分,存储表示结点间关系的指针D. 分两部分,一部分存放结点值,另一部分存放结点所占单元数11. 链表是一种采用( )存储结构存储的线性表;A. 顺序 B. 链接 C. 星式 D. 网状12. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址:A. 必须是连续的 B. 连续或不连续都可以 C. 部分地址必须是连续的 D. 一定是不连续的13 线性表在( )情况下适用于使用链式结构实现。A. 需经常修改中的结点值 B.需不断对进行删除插入 C. 中含有大量的结点 D. 中结点结构复杂14 单链表的存储密度A. 大于1 B. 等于1 C. 小于1 D. 不能确定15线性表的链接存储结构是一种( )的存储结构。A. 随机存取 B. 顺序存取 C. 索引存取 D. 散列存取16链表不具有的特点是()。A可随机访问任一元素 B. 插入、删除不需要移动元素C. 不必事先估计存储空间 D. 所需空间与线性表长度成正比17数组用来表示一个循环队列,为当前队列头元素的前一位置,为队尾元素的位置,假定队列中元素的个数小于,计算队列中元素的公式为( )。A. rf B.(nfr)% n; C. nrf; D.(nrf)% n18.若已知一个栈的入栈序列是1,2,3,n,其输出序列为p1,p2,p3,pn,若p1=n,则pi为( )。i n=i n-i+1 不确定19.串是一种特殊的线性表,其特殊性体现在:可以顺序存储 数据元素是一个字符 可以链式存储 数据元素可以是多个字符20.设有两个串p和q,求q在p中首次出现的位置的运算称作( )。连接 模式匹配 求子串 求串长21.假设有60行70列的二维数组a160, 170以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a32,58的存储地址为( )。(无第0行第0列元素)16902 16904 14454 答案A, B, C均不对答:(57列60行31行)2字节10000=1690222不含任何结点的空树( )。是一棵树 是一棵二叉树 是一棵树也是一棵二叉树 既不是树也不是二叉树23二叉树是非线性数据结构,所以( )。A.它不能用顺序存储结构存储 B它不能用链式存储结构存储 C.顺序存储结构和链式存储结构都能存储 D.顺序存储结构和链式存储结构都不能使用 24.具有n(n0)个结点的完全二叉树的深度为( )。A. log2(n) B. log2(n) C. log2(n) +1 D. log2(n)+125把一棵树转换为二叉树后,这棵二叉树的形态是( )。A.唯一的 B.有多种 C.有多种,但根结点都没有左孩子 D.有多种,但根结点都没有右孩子26二叉树的前序序列和后序序列正好相反,则该二叉树一定是( )的二叉树。A. 空或只有一个结点 B. 高度等于其结点数 C. 任一结点无左孩子 D. 任一结点无右孩子27.讨论树、森林和二叉树的关系,目的是为了( )。A 借助二叉树上的运算方法去实现对树的一些运算B 将树、森林按二叉树的存储方式进行存储并利用二叉树的算法解决树的有关问题C 将树、森林转换成二叉树D 体现一种技巧,没有什么实际意义28.一个高度为h的满二叉树共有n个结点,其中有m个叶子结点,则有( )成立。A n=h+m B h+m=2n C m=h-1 D n=2m-129. 在一个图中,所有顶点的度数之和等于图的边数的( )倍。 A1/2 B. 1 C. 2 D. 4 30在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的( )倍。 A1/2 B. 1 C. 2 D. 4 31. 有8个结点的无向图最多有( )条边。 A14 B. 28 C. 56 D. 112 32. 有8个结点的无向连通图最少有( )条边。 A5 B. 6 C. 7 D. 8 33. 有8个结点的有向完全图有( )条边。 A14 B. 28 C. 56 D. 112 34. 用邻接表表示图进行广度优先遍历时,通常是采用( )来实现算法的。A栈 B. 队列 C. 树 D. 图 35无向图的邻接矩阵是一个( ),有向图的邻接矩阵是一个( ) 。A上三角矩阵 B下三角矩阵 C对称矩阵 D无规律36在表长为的链表中进行线性查找,它的平均查找长度为( )。. ; . (); . ; . ()37折半查找有序表(4,6,10,12,20,30,50,70,88,100)。若查找表中元素58,则它将依次与表中( )比较大小,查找结果是失败。A20,70,30,50 B30,88,70,50 C20,50 D30,88,5038对22个记录的有序表作折半查找,当查找失败时,至少需要比较( )次关键字。A3 B4 C5 D 639. 链表适用于( )。查找A顺序 B折半查找 C顺序和折半查找 D随机40将5个不同的数据进行排序,至多需要比较( )。次。. 8 . 9 . 10 . 2541 排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( )。. 希尔排序 . 冒泡排序 . 插入排序 . 选择排序42从未排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)的一端的方法称为( )。. 希尔排序 . 归并排序 . 插入排序 . 选择排序43对个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多。( )。. 从小到大排列好的 . 从大到小排列好的 . 元素无序 . 元素基本有序44对个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数为( )。. n+1 . n . n-1 . n(n-1)/245快速排序在下列哪种情况下最易发挥其长处。( )。. 被排序的数据中含有多个相同排序码 . 被排序的数据已基本有序. 被排序的数据完全无序 . 被排序的数据中的最大值和最小值相差悬殊46 对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是( )。 AO(n) BO(n2) CO(nlog2n) DO(n3)47若一组记录的排序码为(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, 7948下列关键字序列中,( )。是堆。. 16, 72, 31, 23, 94, 53 . 94, 23, 31, 72, 16, 53 . 16, 53, 23, 94,31, 72 . 16, 23, 53, 31, 94, 7249堆是一种( )。排序。. 插入 .选择 . 交换 . 归并50堆的形状是一棵 C . 二叉排序树 .满二叉树 . 完全二叉树 . 平衡二叉树51若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为( )。. 79, 46, 56, 38, 40, 84 . 84, 79, 56, 38, 40, 46 . 84, 79, 56, 46, 40, 38 . 84, 56, 79, 40, 46, 38 52 下述几种排序方法中,要求内存最大的是( )。 . 插入排序 .快速排序 . 归并排序 . 选择排序三、应用题1、已知二叉树的前序和中序序列分别为ABDFJGKCE和BFJDGKACE,试构造该二叉树,并写出它的后序序列。2、试写出如图所示的二叉树分别按前序、中序、后序遍历时得到的结点序列。3已知二叉树的中序和后序序列分别为CBEDAFIGH和CEDBIFHGA,试构造该二叉树,并写出该树的前序序列。4对给定的一组权值W5,2,9,11,8,3,7,试构造相应的哈夫曼树,并计算它的带权路径长度。5已知某字符串S中共有8种字符,各种字符分别出现2次、1次、4次、5次、7次、3次、4次和9次,对该字符串用0,1进行前缀编码,问该字符串的编码至少有多少位。6、已知某字符串中共有8种字符abcdefgh,每种字符出现的次数分别为(9,2,5,1,8,3,7,15),试为这8个字符设计哈夫曼编码。请先画出构造的哈夫曼树(要求树中左孩子结点的权值小于右孩子结点的权值),然后分别写出每个字符对应的编码。7.把如图所示的树转化成二叉树。8.画出和下列二叉树相应的森林。9在一棵空的二叉排序树中依次插入关键字序列为12,7,17,11,16,2,13,9,21,4,请画出所得到的二叉排序树,并求查找成功时的平均查找长度。 10.假定对有序表:(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题:(1) 画出描述折半查找过程的判定树;(2) 若查找元素54,需依次与哪些元素比较?(3) 若查找元素90,需依次与哪些元素比较?(4) 假定每个元素的查找概率相等,求查找成功时的平均查找长度。11.设哈希(Hash)表的地址范围为017,哈希函数为:H(K)K % 16。K为关键字,用线性探测法再散列法处理冲突,输入关键字序列: (10,24,32,17,31,30,46,47,40,63,49)造出Hash表,试回答下列问题:(1) 画出哈希表的示意图;(2) 若查找关键字63,需要依次与哪些关键字进行比较?(3) 若查找关键字60,需要依次与哪些关键字比较?(4) 假定每个关键字的查找概率相等,求查找成功时的平均查找长度。12、选取散列函数H(key)=(key)%13,用线性探测法处理冲突,对关键码序列39,08,46,22,41,53,23,31,66,25构造一个散列地址空间为012,表长为13的散列表,并求查找成功时的平均查找长度。13. 选取散列函数H(key)=(key)%11,用线性探测法处理冲突,对关键码序列22,41,53,08,46,30,01,31,66,构造一个散列地址空间为010,表长为11的散列表,并求查找成功时的平均查找长度。14设哈希函数H(K)=k%11,给定键值序列为69,72,78,10,26,38,43,55,哈希表长度为11,采用拉链法处理冲突,试构造散列表,并计算查找成功时的平均查找长度。15. 应用希尔排序算法从小到大进行排序,键值序列为908,17,512, 503,170,897,275,653,426,增量序列为5,3,1,试写出每趟排序的结果。 16. 应用希尔排序算法,对键值序列45,93,34,49,57,65,37,51,13, 7从小到大进行排序,试写出每趟排序的结果。(增量序列为:5 3 1)17、应用希尔排序算法从小到大进行排序,键值序列为56,31,75,12,93,86,74,69, 6, 38,增量序列为5,3,1,试写出每趟排序的结果。 18应用希尔排序算法,对键值序列9,57,95,37,51,13, 7,85,93,34从小到大进行排序,试写出每趟排序的结果。(增量序列为:5 3 1)19、已知含有V1,V2,V3,V4,V5,V6,V7等七个顶点的图的邻接矩阵,求从顶点V1出发进行深度优先遍历和广度优先遍历的结点序列。20、试用Prim算法从顶点a出发构造下图的最小生成树,要求分步给出构造过程。四、程序理解题1. 写出下列程序段的输出结果,简述算法的功能void main()SeqStack S; int d;CirQueue Q;Q.EnQueue(1);Q.EnQueue(2);Q.EnQueue(3);Q.EnQueue(4);Q.EnQueue(5);while(!Q.Empty() d=Q.DeQueue(); S.Push(d);while(!S.Empty() d=S.Pop(); Q.EnQueue(d); coutd;2写出下列程序段的输出结果void main()CirQueue Q; char x=e, y=c;Q.EnQueue (h); Q.EnQueue (r); Q.EnQueue (y);x=Q.DeQueue (); Q.EnQueue (x); x=Q.DeQueue (); Q.EnQueue (a); while(!Q.Empty() y=Q.DeQueue ();couty;coutxendl;3、在操作序列push(1)、push(2)、pop、push(5)、push(7)、pop、push(6)之后,栈顶元素、栈底元素、栈中元素分别是什么?(push(k)表示整数k入栈,pop表示栈顶
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论