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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

算法与数据结构复习题.docx

1、算法与数据结构复习题算法与数据结构复习题一、单选题1要求具有同一逻辑结构的数据元素具有相同的特性,其含义为(B)。A.数据元素具有同一的特点B.不仅数据元素包含的数据项的个数相同,而且其对应数据项的类型要一致C.每个数据元素都一样D.仅需要数据元素包含的数据项的个数相同2下列程序段 for(i=1;inext=p-next;p-next=s; B.s-next=p;p-next=sC.q-next=s;s-next=p; D.p-next=s;s-next=q;4在一个单链表中,若删除*p结点的后继结点,则执行操作(A)。A.q=p-next;p-next=q-next;free(q); B.

2、 p=p-next;p-next=p-next-next;free(p);C.p-next=q-next;free(p-next); D. p=p-next-next;free(p-next); 5设指针p指向双链表的某一结点,则双链表结构的对称性可以用下面的操作来反映(C)。A.p-prior-next=p-next-next; B. p-prior-prior=p-next-prior;C.p-prior-next=p- next-prior; D. p-next-next= p-prior-prior;6表达式a*(b+c)-d的后缀表达式是(B)。Aabcd*+- Babc+*d- C

3、abc*+d- D-+*abcd7设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是(D)。AA,B,C,D BD,C,B,A C.A,C,D,B D.D,A,B,C8设一个栈的输入序列为12345,则借助一个栈所得到的输出序列不可能是(B)。A23415 B54132 C.23145 D.154329设有一个顺序栈,6个元素1、2 、3、4、5、6依次入栈,如果6个元素出栈的顺序是2、3、4、6、5、1,则栈的容量至少应该是(B)。A2 B3 C.5 D.610设有一个顺序栈的入栈序列是a、b、c,则3个元素都出栈的可能不同排列个数为(B)。A4 B5 C.6 D.71

4、1若已知一个栈的入栈序列是1,2,3,n,其输出序列为pl,p2,p3,pn,若pl是n,则 pi是(C)。Ai Bn-I Cn-i+1 D不确定12已知广义表LS=(a,b,c),(d,e,f),运算head和tail函数取出元素e的运算是(C)。Ahead(tail(LS) Btail(head(LS)Chead(tail(head(tail(LS) Dhead(tail(tail(head(LS)13 二维数组A的每个元素是由6个字符组成的串,其行下标i=0,l,8,列下标为j=1,2,10。设每个字符占一个字节,若按行先存储,元素A8,5的起始地址与A按列存储时起始地址相同的元素是(B

5、)。AA8,5 BA3,10 CA5,8 DA0,914数组A1.5,1.6的每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A5,5的地址为(A)A.1140 B.1145 C.1120 D.112515对二叉树从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一个结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用遍历方式是(C)。A.先序 B.中序 C.后序 D.从根开始的层次遍历16某二叉树的先序序列和后序序列正好相反,则该二叉树的特点一定是(B)。A.空或只有一个结点 B.高度等于其结点数 C.任一结点无左孩子 D.任一结点

6、无右孩子17下列说法正确的是(D)。(1)二又树按某种方式线索化后,任一节点均有指向前趋和后继的线索(2)二叉树的前序遍历序列中,任意一个节点均处于在子孙节点前(3)二叉排序树中任一节点的值大于其左孩子的值,小于右孩子的值A(1)(2)(3) B(1)(2) C(1)(3) D前面的可选答案都不对18下面的说法中正确的是(B)。(1)任何一棵二叉树的叶子节点在三种遍历中的相对次序不变。(2)按二叉树定义,具有三个节点的二叉树共有6种。A(1),(2) B(1) C(2) D(1),(2)都错19树有先根遍历和后根遍历,树可以转化为对应的二叉树。下面的说法正确的是(B)。A树的后根遍历与其对应的

7、二叉树的后根遍历相同 B树的后根遍历与其对应的二叉树的中根遍历相同C树的先根遍历与其对应的二叉树的中根遍历相同 D以上都不对20下图的邻接表中,从顶点V1 出发采用深度优先搜索法遍历该图,则可能的顶点序列是(D)。 A.V1V2V3V4V5 B.V1V2V3V5V4 C.V1V4V3V5V2 D.V1V3V4V5V2 21以下说法不正确的是(D)。A无向图中的极大连通子图称为连通分量B连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点C图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点D有向图的遍历不可采用广度优先搜索22在平衡二叉树中插入一个结点后引起了不平衡,设最低(最接近于叶子)的

8、不平衡点是A,并已知A的左、右孩子的平衡因子分别为-1和0,则应进行的平衡旋转是(B)。ALL型 BLR型 CRL型 DRR型23设哈希表长为14,哈希函数H(key)=key11,表中已有数据的关键字为15,38,61,84,四个,现将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是(A)。A8 B3 C5 D924对散列文件,以下说法错误的是(D)。A散列文件插入、删除方便,不需要索引区且节省存储空间B散列文件只能按关键字随机存取且存取速度快C经过多次插入、删除后,可能出现溢出桶满的情况D散列文件顺序存取方便26对有18个元素的有序表作二分查找,则查找A3的比较序列的

9、下标为(D)。A.1,2,3 B.9,5,2,3 C9,5,3 D.9,4,2,327在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0,右孩子的平衡因子为1,则应调整以使其平衡,所作的平衡旋转是(C)。A.LL型 B.LR型 C.RL型 D.RR型28在n个结点且为完全二叉树的二叉排序树中查找一个键值,其平均比较次数的数量级为(B)。A.O(n) B.O(log2n) C.O(nlog2n) D.O(n2)29下列排序算法中,在待排序数据已基本有序时,效率最高的排序方法是(A)。A插入 B选择 C快速 D堆30下面关于B-树和B+树的叙述中,不正

10、确的结论是(A)。AB-树和B+树都能有效地支持顺序查找BB-树和B+树都能有效地支持随机查找CB-树和B+树都是平衡的多叉树DB-树和B+树都可用于文件索引结构31关键路径是事件结点网络中(B)。A从源点到汇点的最长路径 B从源点到汇点的最短路径 C最长的回路 D最短的回路32将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是(A)。An B2n-1 C2n Dn-133下列排序算法中,时间复杂度不受数据初始状态影响,恒为0(nlog2n)的是(A)。A.堆排序 B.冒泡排序 C.直接选择排序 D.快速排序34下列排序算法中,某一趟结束后未必能选出一个元素放在其最终位置上的是(D

11、)A.堆排序 B.冒泡排序 C.快速排序 D.直接插入排序35数据表A中有10000个元素,如果仅要求求出其中最大的10个元素,则采用最节省时间的排序算法是(A)。A.堆排序 B.希尔排序 C.快速排序 D.直接选择排序36数据结构被形式地定义为(D,R),其中D 是( )。A.算法 B.操作的集合 C.数据元素的集合 D.数据关系的集合37顺序表是线性表的(A)。A.顺序存储结构 B.链式存储结构 C.索引存储结构 D.散列存储结构38在一个单链表中,已知*p结点不是最后结点,若在*p之后插入结点*s,则执行操作(B)。A.s-next=p;p-next=s; B.s-next=p-next

12、;p-next=sC.s-next=p-next;p=s; D.p-next=s;s-next= p ;39循环队列AO.m-1存放其元素值,用front和rear分别表示队头及队尾,则循环队列满的条件是(A)。A(Q.rear+1)m=Q.front BQ.rear=Q.front+1CQ.rear+l=Q.front DQ.real=Q.front40如果以链栈为存储结构,则出栈操作时( B )。A必须判栈满 B必须判别栈空 C.判别栈中元素类型 D.不必作任何判别41对矩阵压缩存储是为了(B)。A.方便运算 B.节省空间 C.方便存储 D.提高运算速度42将一棵有100个结点的完全二叉树

13、从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为(B)。A.98 B.99 C.50 D.4843二义树在线索化后,仍不能有效求解的问题是(D)。A.先序线索二叉树中求先序后继 B.中序线索二叉树中求中序后继C.中序线索二叉树中求中序前趋 D.后序线索二又树中求后序后继44对于关键字序列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,则开始结点的键值必须为(C)。A.100 B.12 C.60 D.1545无向图G=(V E),其中V=a,b,C,d,e,f,E=,对该图进行深度优先排序,得到的顶点序列正确的是

14、(D)。Aa,b,e,c,d,f Ba,c,f, e,b,dCa,e,b,c,f, d Da,e,d,f, c, b46设图G用邻接表存储,则拓扑排序的时间复杂度为(B )。AD(n) BO(n+e) CO(nn) D0(ne)47关于散列法查找说法正确的是(B)。A采用链地址解决冲突时,查找一个元素的时间是相同的B采用链地址解决冲突时,若规定插入总是在链首,则插入任一个元素的时间是相同的C采用链地址解决冲突容易引起聚集现象D再散列不易产生聚集48在平衡二叉树中插入一个结点后引起了不平衡,设最低(最接近于叶子)的不平衡点是A,并已知A的左、右孩子的平衡因子分别为-1和0,则应进行的平衡旋转是(

15、B)。ALL型 BLR型 CRL型 DRR型49在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是(D)。AG中有弧 BG中有一条从Vi到Vj的路径 CG中没有弧 DG中有一条从Vj到Vi的路径50排序算法中,算法可能会出现下面情况:初始数据有序时,花费的时间反而最多的是(C)。A.堆排序 B.冒泡排序 C.快速排序 D.SHELL排序二、填空(问答)题1数据结构被形式地定义为(D,R),其中D和R 的含义是什么。(D是数据元素的集合,R是数据关系的集合)。数据的逻辑结构包括哪四种类型。(线性结构、树形结构、图形结构、集合类型)。从存储结构的概念上讲,顺序表是线性表的(

16、顺序存储结构 ),链表是(链式存储结构)。2算法的五个重要特性有哪些。(有穷性、确定性、可行性、输入、输出)。抽象数据类型是指一个(数学模型)以及定义在该模型上的(一组操作)。3在含有n个结点的顺序存储的线性表中,在任意一个结点前插入一个结点所需要移动结点的平均次数为( n/2 )。在含有n个结点的顺序存储的线性表中,任意删除一个结点所需要移动结点的平均次数为( n-1/2 )。对一个线性表分别进行遍历和逆置运算,其最好的时间复杂度量级均为(O(n))。4线性结构中的一个结点代表一个(数据元素 )。若线性表中最常用的操作是取第i个元素和查找该元素的前驱,则采用的存储方式最能节省时间的是(顺序表

17、 )。若最常用的操作是插入和删除第i个元素,则采用的存储方式最能节省时间的是(单链表 )。5在一个不带头结点的单链表中,在表头插入或删除与在其他位置插入或删除操作过程不同,需要修改(头指针)。在单链表中设置头结点的作用是(便于操作),无论链表是否为空。使(头指针)均不为空。对于双向链表,在两个结点之间插入一个新结点需修改的指针共有(4个),单链表为(2个)。6如果以链栈为存储结构,则出栈操作时( 必须判别栈空 ),与顺序栈相比,链栈有一个明显的优势是( 不易出现栈满 )。7循环队列采用数组data1n来存储元素的值,并用front和rear分别作为其头尾指针。为区分队列的满和空,约定:队中能够

18、存放的元素个数最大为n-l,也即至少有一个元素空间不用,则在任意时刻,至少可以知道一个空的元素的下标是(front) ;入队时,可用语句(rear=rear+1%n)求出新元素在数组data中的下标。8已知栈的输入序列为1,2,3,n,输出序列为a1,a2,an,a2=n的输出序列共有(n-1)种输出序列。9稀疏矩阵一般的压缩存储方法有两种,它们是用(哈希表、三元组和十字链表 )。对矩阵压缩存储是为了(节省空间)。10将下三角矩阵Al.8,1.8的下三角部分逐行地存储到起始地址为1000的内存单元中,已知每个元素占4个单元,则A7,5的地址为 (1100)。11已知数组A1.10,1.10为对

19、称矩阵,其中每个元素占5个单元。现将其下三角部分按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A5,6对应的地址为(1095)。12两个串相等的充要条件是,两个串的(长度)相等,且其所对应各个位置的(字符)也相等。13取出广义表A=(x,(a,b,c,d)中原子C的函数是( head(tail(tail(head(tail(head(A) )。14在有n个结点的二又链表中,值为非空的链域的个数为(n-1)。在有n个叶子结点的哈夫曼树中,总结点数是(2n-1)。在树形结构中,根结点数只有(1个),其余每个结点有且仅有一个元素(前驱)结点。15一棵二叉树L的高度为h,所有结点的度或

20、为0,或为2,则这棵二叉树最少的结点数为( 2h-1 )。已知二叉树有50个叶子结点,则该二叉树的总结点数至少是(99)。将一棵有100个结点的完全二叉树从根这一层开始,每一层上从左到右依次对结点进行编号,根结点的编号为1,则编号为49的结点的左孩子编号为(98 )。有64个结点的完全二叉树的深度为( 7 )。16拓扑排序只能用于(有向无环图)。连通图是指图中任意两个顶点之间(都连通的无向图 )。一个有n个顶点的无向连通图,它所包含的连通分量个数最多为( 1 )个。任何一个无向连通图的最小生成树(有一棵或多棵)。若含有n个顶点的图形成一个环,则它有(n)棵生成树。17求图的最小生成树有两种算法

21、,(prim(普里姆)算法适合于求稠密图的最小生成树,(kruskal(克鲁斯卡尔)算法适合于求稀疏图的最小生成树。设图G用邻接表存储,则拓扑排序的时间复杂度为(O(n+e) )。18在一棵三叉树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,则度为0的结点数为( 6 )。19中序表达式A*(B+C)(D-E+F)的后序表达式是(ABC+*DE-F+/ )。 20有向图G用邻接矩阵A存储,则顶点i的入度等于A中(第i列1的元素之和 )。具有10个顶点的无向图,边的总数最多为(45)个,具有n个顶点的强连通有向图G,边的总数至少有(n)条。21从未排序序列中依次取出元素与已

22、排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为( 插入排序 )。对于关键字序列(12,13,11,18,60,15,7,18,25,100),用筛选法建堆,则开始结点的键值必须为( 60 )。22在有序表Al.20中,采用二分查找算法查找元素值等于A12的元素,所比较过的元素的下标依次为(10,15,12),查找元素值等于5的元素,所比较过的元素个数为(5)个。分别采用堆排序、快速排序、插入排序和归并排序算法对初始状态为递增序列的表按递增顺序排序,最省时间的是(插入排序)算法,最费时问的是(快速排序)算法。直接选择排序算法所执行的元素交换次数最多为(n-1)

23、次,最好情况下所作的交换元素的次数为(0)次。在堆排序,希尔排序,快速排序,归并排序算法中,占用辅助空间最多的是 (归并排序)。二分查找法要求查找表中各元素的关键字的值得排列必须是(递增或递减或有序 )。23若一个待散列存储的线性表长度为n,用于散列的散列表长度为m,则m应(小于等于)n,装填因子公式为(n/m)。散列表的平均查找长度(与处理冲突方法有关而与表的长度有关 )。24在平衡二叉树上删除一个结点后可以通过旋转使其平衡,最坏情况下需旋转(O(log2n) )次。25贪心算法的基本思想是,逐步构造最优解,每步都按照一定的标准,称为(贪心)准则,做出决策。0/1背包问题的三种贪心准则中,相

24、对较优的是(价值密度)贪心准则。分治法与(递归)技术紧密结合。与分治法不同的是,动态规划是(自底向上或自下而上)、逐级求解子问题。分枝定界的搜索策略与(广度优先)类似,而回溯方法则采用(深度优先)搜索策略。26对于单链表、单循环链表和双向链表,若仅仅知道一个指向链表中某结点的指针p,能否将p所指的结点的数据元素与它的直接前趋(假设存在)交换?若不可以,说明理由;若可以,写出主要算法。(1)单链表不能,单循环链表和双向链表可以。(2)单循环链表 q=p;while(qnext!=p) q=qnext;temp=pdata; pdata=qdata;qdata=temp;(3)双向链表:q=ppr

25、ior; temp=qdata; qdata=pdata;pdata=temp;27设有三对角矩阵a1.n,1.n把非零元素按列存储在向量b1.3*n-2中,使得bk=ai,j。求: 用i,j表示k的下标变换公式 (k=2*(j-1)+i) 用k表示i,j的下标变换公式 (j=(k DIV 3)+1 i=k-2*(j-1))28内存中一片连续空间(不妨设地址从1到m),提供给两个栈S1和S2使用,怎样分配这部分存储空间,使得对任意一个栈,仅当这部分全满时才发生上溢。(为了尽量利用空间,减少溢出的可能,可采用栈顶相向,栈底分设两端的存储方式,这样,对任何一个栈,仅当整个空间全满时才会发生上溢。)

26、 29有一n个结点的树,其中所有分支结点的度均为k,求该树中叶子结点的个数。设no为叶子结点数,nk为度为k的结点数,n为结点总数(依题意:n=no+nk (1) n= knk+1 (2)综合(1) 和(2)得: no=n-(n-1)/k 30. 设有n个无序元素,按非递减次序排序,但只想得到前面长度为k的部分序列,其中nk,最好采用什么排序方法?为什么?如有这样一个序列:59,11,26,34,17,91,25,得到的部分序列是11,17,25,对于该例使用所选择的方法实现时,共执行多少次比较?(1)采用堆排序最合适,因为当部分序列较小时,堆排序的时间复杂度近似为O(n)。(2)初始建堆:比

27、较8次输出11,第一次调整:比较次输出17第二次调整:比较2次输出 25,总共比较14次。31. 设二叉排序树中关键字由1至1000的整数组成,现要查找关键字为363的结点,下述关键字序列哪一个不可能是在二叉排序树中查到的序列?说明原因。(1)51,250,501,390,320,340,382,363;(2)24,877,125,342,501,623,421,363;(1)是;不是。因为查询序列是:查421时,其623左、右两个区间都不存在,查找失败。)32. 在执行某个排序算法过程中,出现了排序关键字朝着最终排序序列相反方向的移动,从而认为该算法是不稳定的,这种说法对么?为什么?(不正确

28、。算法的稳定性是考察最终排行的位置交换,与中间过程无关。如:对于整数序列(18,36,25)。按基数排序的LSD方法,第一趟排序后(25,36,18),第二趟排序后得到(18,25,36),18虽向相反方向移动,但不影响最终位置。)33. 将算术表达式(a+b)+c*(d+e)+f)*(g+h)转化为二叉树( 二叉链表结构)(略)34在线性结构中,开始结点没有(前驱)结点,最后一个元素没有(后继)结点。35线性表的逻辑结构是(线性结构),其所含结点的个数称为线性表的(长度)。36队列的特性是(先入先出或后入后出),栈的特性是(后入先出或先入后出)。37数组Al.10,1.10的每个元素占5个单

29、元,将其按列优先次序存储在起始地址为1000的连续的内存单元中,则元素A5,6的地址为(1270)。38若某二叉树有20个叶子结点,有30个结点仅有一个孩子,则该二叉树的总结点数是(69)。39树t的存储结构为二叉链表bt,树t中的一个叶子结点在bt中满足条件(bt-lchildnull& bt-rchildnull;40求图的最小生成树有两种算法,(prim(普里姆)) 算法适合于求稠密图的最小生成树。41在索引顺序表上实现分块查找,在等概率查找情况下,其平均查找长度不仅与表的(长度)有关,而且与每一块中的元素(长度)有关。42分枝定界的搜索策略与(广度优先) 类似,而回溯方法则采用(深度优先)搜索策略。430/1背包问题的三种贪婪准则中,相对较优的是(价值密度) 贪婪准则。三、应用题1有一个二叉树按层次顺序存放在一维数组中,如下图所示:试求:(1)该树的后序遍历序列。(C,E,B,D,A) (2)画出该树的后序线索树。(略)1 2 3 4 5 6 7 8 9 10 11 ACBED2按顺序输入下列顶点对: (1,2)、(1,6)、(2,6)、(1,4)、(6,4)、(1,3)、(3,4)、(6,5)、(4,5)、(1,5)、(3,5),(1)画出相应的邻接表。(2)写出在邻接表上,从顶点3开始(表下标从0开始)的DFS序列和DF

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

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