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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构复习题库Word下载.docx

1、(1)算法选用的策略、(2)、问题的规模 。13、算法时间复杂度是算法中基本运算重复执行次数多少的量度。记作O(n),空间复杂度作为实现算法所需的辅助存储空间的大小,记作S(n)=O(f(n)。1.2线性表1、线性表是具有相同特性的数据元素的一个有限序列。其特征有三:所有元素类型相同、线性表是由有限个数据元素组织、线性表中的数据元素与位置有关的,这一点表明线性表不同于集合,线性表中的每一个元素都有一个对应的序号,线性表中元素可以重复出现。2、线性结构特点:有“头”元素有“尾”元素,中间的元素有“前驱”元素和“后继”元素。3、线性表的顺序表示是指:用一组地址连续的存储单元依次存放线性表中的数据元

2、素。4、对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度为O(1),在表尾插入元素的时间复杂度为O(n)。5、在下面的数组a中链接存储着一个线性表,表头指针为ao.next,则该线性表为_(38,56,25,60,42,74) 。 a 0 1 2 3 4 5 6 7 8 60 56 42 38 74 25 4 3 7 6 2 0 1datanext4、在以HL为表头指针的带表头附加结点的单链表和循环单链表中,判断链表为空的条件分别为_ HLnext =NULL; _和_ HL=HLnext_。1.3栈和队列1、栈又称堆栈:是一个受限的线性表,其限制是仅允许在表的一端进行插入与删除

3、。通常把对栈进行操作的一端称为栈顶,另一端称为栈底。向栈顶插入一个新元素称为入栈或称进栈,从栈顶删除一个元素,称为出栈或退栈。2、队列的插入操作是在队列的队尾进行,删除操作是在队列的队首进行。3、当用长度为N的数组顺序存储一个栈时,假定用top=N表示栈空,则表示栈满的条件是top=0_。4、后缀表达式运算规则:运算符在式中出现的顺序恰为表达式的运算顺序,每个运算符和在它之前出现且紧靠它的两个操作数构成一个最小表达式。5、中缀表达式a*(b+c)-d/f 的后缀表达式是: abc+*df/- 。6、当堆栈采用顺序存储结构时,栈顶元素的值可用S.stack S.top 表示;当堆栈采用链接存储结

4、构时,栈顶元素的值可用HSdata表示。1.4稀疏矩阵与广义表1、稀疏矩阵的三元组表示法是指用非零元素所在的行、列以及值组成的三元组来表示一个非零元素2、广义表A= (a,(b,c),(d,e),f),则它的深度为 4 ,它的长度为 3 。1.5树1、在一个树中存在唯一元素,这个元素称之为根元素; 除根结点外,每个结点有且仅有一个前驱结点; 包括根结点在内每个结点,可有任意多个(含0个)后继。2、所谓后根遍历是指:先按照从左到右的次序后根遍历根节点的每一个子树,再访问该根节点。3、 二叉排序树是指度为2的 有序 树。一棵结点数为n的二叉树,其所有结点的度的总和是 n-1 。4、对一棵二叉搜索树

5、进行中序遍历时,得到的结点序列是一个 有序序列 。对一棵由算术表达式组成的二叉树进行后序遍历得到的结点序列是该算术表达式的后缀表达式(或逆波兰式)。5、对于一棵具有n个结点的二叉树,用二叉链表存储时,其指针总数为 2n 个,其中 n-1 个用于指向孩子, n+1 个指针是空闲的。6、若对一棵完全二叉树从0开始进行结点的编号,并按此编号把它顺序存储到一维数组A中,即编号为0的结点存储到A0中。其余类推,则A i 元素的左孩子元素为 2i+1 ,右孩子元素为 2i+2 ,双亲元素为 (i-1)/2 。7、若用链表存储一棵二叉树时,每个结点除数据域外,还有指向左孩子和右孩子的两个指针。在这种存储结构

6、中,n个结点的二叉树共有2n_个指针域,其中有_n-1_个指针域是存放了地址,有n+1_个指针是空指针。8、假定一棵树的广义表表示为A(B(C,D(E,F,G),H(I,J),则树中所含的结点数为_10_个,树的深度为_4_,树的度为_3_, 结点H的双亲结点为_B_,孩子结点为_I、J_ 。1.6图1、对于一个具有n个顶点和e条边的有向图和无向图,在其对应的邻接表中,所含边结点分别有_e_个和_2e_个。2、假设一个连通图有n个顶点和e条边,其中n-1条边和n个顶点构成一个极小连通子图,称该极小连通子图为此连通图的生成树。3、从已给的连通图中某一顶点出发,沿着一些边访遍图中所有的顶点,且使每

7、个顶点仅被访问一次,这个过程就叫做图的遍历,图的遍历分为深度优先搜索遍历和广度优先搜索遍历两种。4、在广度优先遍历过程中,仅从图来进行分析其访问顺序是不唯一的,而对于具体的邻接表而形成的遍历结果是一致的。5、AOV网是一种有向无回路的图。6、在一个具有n个顶点的无向完全图中,包含有_n*(n-1)/2_条边,在一个具有n个顶点的有向完全图中,包含有_n(n-1)_条边。7、在一颗生成树中,再增加一条边,就会出现一条回路。而在一颗生成树中再删除一个条边,就使得生成树变成非连通图,使生成树变成两个连通分量的非连通图。8、从一顶点到另一顶点路径中经过的边权值之和称为带权路径长度;n条路径中边权值之和

8、最小的路径称为最短路径,该权值之和称为最短路径长度。1.7查找1、静态查找表是仅作查询和检索的查找表,静态查找表正常有以下几种形式:顺序查找表、有序查找表 、静态查找树表、索引顺序表 2、动态查找表主要是指:若将“查询”结果为不在查找表中的元素插入查找表;或者,从查找表中删除其“查询”结果为在查找表中的数据元素。3、左、右子树深度之差的绝对值不大于1,称有这种特性的二叉树为平衡树。4、B树中所有叶子结点均不带信息,且在树中的同一层次上(平衡的特性);根结点或为叶子结点,或至少有两棵子树,其余非叶结点至少含有m/2 棵子树,至多m棵子树。5、B+树所有的叶结点都处于同一层次上,包含了全部关键码及

9、指向相应数据对象存放地址的指针,且叶结点本身按关键码从小到大顺序链接6、在一个索引文件的索引表中,每个索引项包含对应记录的索引值域和开始位置域两项数据。1.8排序1、当待排序的记录数较大,排序码较随机且对稳定性不作要求时,宜采用 _快速 _排序;当待排序的记录数较大,存储空间允许且要求排序是稳定时,宜采用_ 归并_排序。2、在线性表的散列存储中,处理冲突的常用方法有_ 开放定址法 _和_ 链接法_两种。3、假定一个线性表为(12,23,74,55,63,40),若按Key % 4条件进行划分,使得同一余数的元素成为一个子表,则得到的四个子表分别为 (12,40)、_()_、_(74)_和 (2

10、3,55,63)。4、在堆排序的过程中,对任一分支结点进行筛运算的时间复杂度为_ O(log2n) ,整个堆排序过程的时间复杂度为_ O(nlog2n)_。二、 选择题(12分,每题2分)2.1绪论1、对一个算法的评价,不包括如下( B)方面的内容。 A健壮性和可读性 B并行性 C正确性 D时空复杂度2、若需要利用形参直接访问实参时,应将形参变量说明为( D)参数。A值 B函数 C指针 D引用3、下面各项中属于逻辑结构的是:(B)。A、哈希表、B有序表、C单链表、D、顺序表。4、下面述语中,与数据的存储结构无关的是(B)A、环形队列 B、栈 C、散列表 C、单链表。5、在计算机的存储器中表示时

11、,各元素的物理地址与逻辑地址的相对顺序相同并且是连续的,称之为(B)A、逻辑结构 B、顺序存储结构 C链式存储结构 D、以上都对。6、可以用(D)定义一个完整的数据结构。A、数据元数 B、数据对象 C、数据关系 D、抽象数据类型7、(B)不是算法的基本特性。A、可行性 B、长度有限 C、在规定的时间内完成 D、确定性8、某算法的时间复杂度为O(N*N)表明该算法的(C)。A、问题规模 B、执行时间等于N*N C、执行时间与(N*N)成正比 D、问题规模与(N*N成正比)9、一个算法的执行时间为T(n)=(3n*n+2nlogn+4n-7)/(10n),其时间复杂度为(D)。A、O(3n*n)

12、B、O(2nlogn) C、(3n/10) D、O(n)2.2线性表1、以下(B)是一个线性表。 A、由n个实数组成的集合 B、由100个字符合组成的序列 C、由所有整数组成的序列 D、邻接表解:选项A中指定的实数集合不是序列,选项C中所含的元素无究,选项D属于存储结构。2、在线性表中,除了开始元素外,每个元素(A) A、只有唯一的前趋元素 B、只有唯一的后继元素 C、有多个前趋 D、有多个后继元素3、顺序表的优点是(A) A、存储密度大 B、插入运算方便 C、删除运算方便 D、可方便地用于各种逻辑结构的存储表示4. 在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( A

13、)。 A、p-next=HL-next; HL-next=p; B、 p-next=HL; HL=p; C、p- p=HL; D、 HL=p; p-5.对线性表,在下列哪种情况下应当采用链表表示?( B) A、经常需要随机地存取元素 B、经常需要进行插入和删除操作 C、表中元素需要占据一片连续的存储空间 D、表中元素的个数不变2.3栈和队列1. 将递归算法转换成非递归算法时,通常要借助的数据结构是(B)。 A、线性表 B、栈 C、队列 D、堆2、链栈与顺序栈相比有一个明显的优点,即(B)。 A、插入操作更方便 B、通常不会出现栈满的现象 C、不会出现栈空的现象 D、删除操作更加方便3、在环形队

14、列中,数组的下标是0至N-1,其头尾指针分别为f和r,则其元素个数为(D) A、r-f B、r-f-1 C、(r-f)%N+1 D、(r-f+N)%N4、 栈和队列的共同特点是( A )。A、只允许在端点处插入和删除元素 B、都是先进后出 C、都是先进先出 D、没有共同点 2.4稀疏矩阵1、 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的(A)。A行号 B列号 C元素值 D非零元素个数2、对特殊矩阵采用压缩存储的目的主要是为了(D) A、表达变得简单 B、对矩阵元素的存取变得简单 C、去掉矩阵中多除元素 D、减少不必要的存储空间3、设有一个二维数组Amn,假设A00存放位

15、置在644(10),A22存放位置在676(10),每个元素占一个空间,问A33(10)存放在什么位置是(C)。脚注(10)表示用10进制表示。 A688 B678 C692 D6962.5树1、树最适合用来表示(C) A、有序数据元素 B、无序数据元素 C、元素之间具有层次关系的数据 D、元素之间无联系的数据2、以下存储结构中,不是树的存储结构的是(D) A、双亲存储结构 B、孩子兄弟链存储结构 C、孩子链存储结构 D、顺序存储结构3、度为4,高度为h的树,则(A) A、至少有h+3个节点 B、至多有4h-1个节点 C、至多有4h个节点 D、至少有h+4个节点4、一棵满二叉树中共有n个节点,

16、其中有m个叶子结点,高度为h,则(D)。 A、n=h+m B、n+m=2n C、m=h-1 D、n= 2h -15、设二叉树有2n个节点,则mn,不可能存在(C)的节点。 A、n个度为0 B、2m个度为0 C、2m个度为1 C、2m个度为2由二叉树的性质可知,节点总数2n = n0 + n1 + n2,n0 = n2 + 1 ,2n=2 n2 +1+ n1所以n1为奇数。6、在任何一棵二叉树中,如果节点a有左孩子b 、右孩子c,则在节点的先序序列、中序序列和后序序列中(C)A、节点b一定在节点a的前面 B、节点a一定在节点c的前面C、节点b一定在节点c的前面 D、节点a一定在节点b的前面7、若

17、唯一地确定一棵二叉树,只须知道二叉树的(C)。 A、先序序列 B、中序序列 C、中序和后序序列 D、先序和后序序列8、一棵二叉树的中序序列为ABDCEFG,后序序列为BDCAFGE,由其左子树中的节点个数为(C)。 A、3 B、2 C、4 D、59、由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为(B) A 24 B 71 C 44 D 532.6图1、AOV网是一种(D)。 A、有向图 B、无向图 C、无向无环图 D、有向无环图2、设有6个结点的无向图,该图至少应有( A )条边才能确保是一个连通图。A、5 B、6 C、7 D、83、以下数据结构中哪一个是非线性

18、结构?(C) A、队列 B、栈 C、 图 D、线性表 4、如果从无向图的任一顶点出发,进行一次深度优先遍历即可访问所有顶点,则该图一定是(B) A、完全图 B、连通图 C、有回路 D、一棵树5、对于采用邻接表存储的图,其深度优先遍历算法类似于二叉树的(A)算法。 A、先序遍历 B、中序遍历 C、后序遍历 D、按层遍历6、对于采用邻接表存储的图,其广度优先遍历算法类似于二叉树的(D)算法。7、判断一个有向图是否存在回路,除了可以利用拓扑排序方法外,还可以利(C)。 A、求关键路径的方法 B、求最短路径的Dijkstra方法 C、深度优先遍历算法 D、广度优先遍历算法对每个访问的顶点做标记,若深度

19、优先遍历访问到已标记的项点,说明存在回路。8、以下叙述正确的是(A) A、最短路径一定是简单路径; B、Dijkstra算法不适合有回路的带权图求最短路径; C、Dijkstra算法不适合求任意两个顶点的最短路径; D、Floyd算法求两个顶点的最短路径时,path k-1一定是pathK的子集。Floyd算法求两个顶点的最短路径时,当最短路径发生更改时,path k-1就不是pathK子集。2.7查找1、 从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。 A. O(n) B. O(1) C. O(log2n) D. O(n2)2、在一个长度为n的顺序线性表中顺序查找值为x的元素时

20、,查找成功时的平均查找长度(即x与元素的平均比较次数,假定查找每个元素的概率都相等)为 (C)。A n B n/2 C (n+1)/2 D (n-1)/23、顺序查找法适合于存储结构为(B)的线性表。 A、哈希存储 B、顺序存储或链式存储 C、压缩存储 D、索引存储4、采用折半查找方法查找长度为n的线性表时,每个元素成功查找的平均查找长度为(D)。 A、O(n2) B、O(n* log2n) C、O(n) D、O( log2n)2.8排序1、快速排序在最坏情况下的时间复杂度为(D)。AO(log2n) BO(nlog2n) C0(n) D0(n2)2、采用开放定址法处理散列表的冲突时,其平均查

21、找长度(B)。A低于链接法处理冲突 B. 高于链接法处理冲突 C与链接法处理冲突相同 D高于二分查找3、希尔排序是一种( B)排序 A. 选择 B. 插入 C. 交换 D. 基数4、对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有(D)个, A1 B2 C3 D45 对n个记录的文件进行快速排序,所需要的辅助存储空间大致为(C)。 A. O(1) B. O(n) C. O(1og2n) D. O(n2)三、 算法描述题(28分,每题7分)1、已知一棵二叉树的前序遍历的结果序列是ECBDIGFHKL,中序遍历的

22、结果是BCDEFGHIKL,试写出这棵二叉树的后序遍历结果,并回答这是一种什么树。答:后序为BDCFHGLKIE,这是一颗平衡二叉树。2、如下图二叉排序树,试用两种方法表示将4号结点删除而形成的二叉排序树。请画出图10的邻接矩阵和邻接表。邻接矩阵:邻接表如图11所示:图114、已知权值 W= 5, 6, 2, 9, 7 ,请按构造哈夫曼树的要求,构造一颗哈夫曼树。 010 0115、已知一个图的顶点集V和边集E分别为:V=1,2,3,4,5,6,7; E=(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7

23、)20,(5,6)18,(6,7)25;用克鲁斯卡尔算法得到最小生成树,试写出在最小生成树中依次得到的各条边。用克鲁斯卡尔算法得到的最小生成树为:(1,2)3, (4,6)4, (1,3)5, (1,4)8, (2,5)10, (4,7)206、画出向小根堆中加入数据4, 2, 5, 8, 3时,每加入一个数据后堆的变化。42583图127、已知一组记录的排序码为(46,79,56,38,40,80, 95,24),写出对其进行快速排序的每一次划分结果。划分次序划分结果第一次38 24 40 46 56 80 95 79第二次24 38 40 46 56 80 95 79第三次24 38 40

24、 46 56 80 95 79第四次24 38 40 46 56 80 95 79第五次24 38 40 46 56 79 80 95第六次24 38 40 46 56 79 80 958、一个线性表为B=(12,23,45,57,20,03,78,31,15,36),设散列表为HT0.12,散列函数为H(key)= key % 13并用线性探查法解决冲突,请画出散列表,并计算等概率情况下查找成功的平均查找长度。 0 1 2 3 4 5 6 7 8 9 10 11 1278150357452031233612查找成功的平均查找长度:ASL SUCC=14/10= 1.4四、 阅读程序回答问题(

25、16分,每题8分)1、假定从键盘上输入一批整数,依次为:78 63 45 30 91 34 1,请写出输出结果。# include stdlib.h consst int stackmaxsize = 30;typedef int elemtype;struct stack elemtype stack stackmaxsize; int top;void main ( ) stack a; initstack(a);/a初始化正确 int x; cin x; while (x! = -1) push (a, x );while (!stackempty (a) cout pop (a) ” ;cout end1;该算法的输出结果为:_34 91 30 45 63 78_.2、阅读以下二叉树操作算法,指出该算法的功能。Template void BinTree :unknown (BinTreeNode*t) BinTreeNode *p =t, *temp; if (p!=NULL) temp = pleftchild; pleftchild = prightchild; prightchild = temp; unknown(pleftchild); undnown(prightchild);

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

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