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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构试题A.docx

1、数据结构试题A一、单项选择题(在每小题的4个备选答案中,选出1个正确的答案,并将其号码填在题干的括号内。每小题2分,共30分)1 若某线性表中最常用的操作是取第I个元素和找第I个元素的前趋元素,则采用( )存储方式最节省时间。A)单链表 B)双链表 C)单向循环链表 D)顺序表2串是任意有限个( ) A)符号构成的序列 B)符号构成的集合 C)字符构成的序列 D)字符构成的集合3设矩阵A的任一元素满足: 现将A的所有非0元素以行序为主序存放在首地址为2000的存储区域中,每个元素占有4个单元,则元素A9,5的首地址为( )。 A)2340 B)2336 C)2164 D)21604如果以链表作

2、为栈的存储结构,则退栈操作时( ) A)必须判别栈是否满 B)对栈不作任何判别 C)必须判别栈是否空 D)判别栈元素的类型5设数组Data0.m作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为( ) A)front=front+1 B)front=(front+1)%m C)rear=(rear+1)%m D)front=(front+1)%(m+1)6深度为6(根的层次为1)的二叉树至多有( )结点。 A)64 B)32 C)31 D)637将含100个结点的完全二叉树从根这一层开始,每层上从左到右依次对结点编号,根结点的编号为1。则编号为49的结

3、点X的双亲的编号为( )。 A)24 B)25 C)23 D)无法确定8设有一个无向图G=(V,E)和G=(V,E),如果G;G的生成树,则下面不正确的说法是( )。 A)G为G的子图 B) G为G的连通分量 C) G为G的极小连通子图且V=V D) G为G的一个无环子图9下列序列中,( )是执行第一趟快速排序后得到的序列。(排序的关键字类型是字符 串) A)da,ax,eb,cd,bbffha,gc B) ge,ax,eb,cd,bb ff da,ha C)cd,eb,ax,da ff ha,gc,bb D) ax,bb,cdda ff eb,gc,ha10二分查找要求被查找的表是( )。

4、A)键值有序的链接表 B)链接表但键值不一定有序 C)键值有序的顺序表 D)顺序表但键值不一定有序11当初始序列已经按键值有序,用直接插入算法对其进行排序,需要循环的次数为( )。 A)n2 B)nlog2n c)log2n D)n-112堆是一个键值序列(k1,k2,kn),对i=1,2,满足( )。 A)kik2ik2i+1 B)kik2i+1next=NULL。2在单链表中,指针p所指结点为最后一个结点的条件是 。3设一个链栈的栈顶指针是ls,栈中结点格式为,栈空的条件是 _。如果栈不为空,则退栈操作为p=ls; ;free(p)。4已知一棵度为3的树有2个度为1的结点,3个度为2的结点

5、,4个度为3的结点,则该树中有 个叶子结点。5树有三种常用的存储结构,即孩子链表法,孩子兄弟链表法和 。6n个顶点的连通图的生成树有 条边。7一个有向图G中若有弧、和,则在图G的拓扑序列中,顶点vi,vj和vk的相对位置为 _ 。8设表中元素的初始状态是按键值递增的,分别用堆排序,快速排序、冒泡排序和归并排序方法对其进行排序(按递增顺序),_ 最省时间, _ 最费时间。9下面是将键值为x的结点插入到二叉排序树中的算法,请在划线处填上适当的内容。 typedef struct node int key; struct node *left, *right; void searchinsert(

6、int x; pnode t)/* t为二叉排序树根节点的指针*/ if ( _ ) p= malloc(suze);p-key=x; p-left = NULL;p-right=NULL;t=p;elseif(xkey) searchinsert (x, t-left)else _ 10.线性表的 _ 主要有点是从表中任一结点出发能访问到所有结点。而使用_ ,可根据需要在前后两个方向上方便地进行查找。三、应用题(本题共28分)1.树的后根遍历方法是:若树非空,则1)依次后根遍历根的各个子树T1,T2,Tm;2)访问根节点。对图1所示的树,用后根遍历方法进行遍历,请写出遍历所得到的结点访问序列

7、。(4分)图1 树2.将图2的森林转换成二叉树。(4分)图2 森林3.图3表示一个地区的交通网,顶点表示城市,边表示连接城市间的公路,边上的权表示修建公路花费的代价。怎样选择能够沟通每个城市且总造价最省的n-1条公路,画出所有可能的方案。(4分)图3网4已知一个无向图的邻接表如图4所示。V124V2541V345V4321V532 图4邻连表 1)画出这个图。 2)以v1为出发点,对图进行广度优先搜索,写出所有可能的访问序列。(本题4分,每小题2分) 5设n个元素的有序表为R,K为一个给定的值,二分查找算法如下: int binswarth(sqlist R;keytype K) L=1; h

8、=n;suc=0; while(L=h)(!suc) mid=(L+h)2; switch K=Rmid.key:suc=L;break; kRmid.key:L=mid+1 if(suc) return(mid) else return(0); 将上述算法中划线语句改为:Knext=s;2)r=s;3)r-next=NULL答案:r-next=s。2.分析:单链表最后一个结点的指针域为空,所以可用p-next=NULL作为判断最后一个结点的条件。3.分析:当栈空时,栈顶指针为空,故判栈空条件为ls=NULL。栈非空时,退栈操作步骤为:1)p=ls;2)ls=ls-link;3)free(p)

9、答案:ls=NULL,ls=ls-link。4.分析:设n1=2,n2=3,n3=4,树的总结点数为n=n0+n1+n2+n3。 (1)树的分支树为n-1=n1+2n2+n3。 (2)(2)-(1):-1=n2+2n3-n0有n0=n2+2n3+1=3+24+1=12答案:12。5.答案:双亲表示法。6.分析:n个顶点的连通图,其生成树有且仅有n-1条边。答案:n-1。7.分析:按题意画出图5所示示意图。由此知,在拓扑序列中i,j,k的相对位置是i,j,k。图5 有向图G的局部示意图答案:i,j,k。8.分析:对冒泡排序来讲,由于哨兵的作用,经一趟排序后,就能判断出当前无序区已经自然有序,终止

10、算法。故它最省时间。对快速排序来讲,由于待排序空间是有序的,每趟排序后,中间元素的左边总是一个空区域,而右边区域长度仅比上一趟少1。因此当在最坏情况下,占用时间最长。答案:冒泡排序、快速排序。9.答案:t=NULL,searchinsert(x,t-right)。10.分析:线性表的存储方式有多种,其中循环链表的主要优点是从表中任一结点出发,都能访问到所有其它的结点。而如果采用双向链表,则可以按前后两个方向进行查找。答案:循环链表、双向链表。三、应用题1.答案:EBFGCKHIJDA。2.分析:先将每棵树转换成二叉树,然后再将各二叉树的根结点作为兄弟连接在一起。而树转换成二叉树的方法是,先将兄

11、弟结点连在一起,然后除最左边的孩子外,断开其它双亲到孩子的连线。答案:如图6所示。(a)先将各树转换成二叉树(b)以结点为中心旋转45(c)将各二叉树组合在一起图6 森林转换成二叉树3.分析:本题实际上是求最小生成树问题。由于图中有两条权值为6的边,故可以得到两种方案。答案:如图7所示。图7 由网络得到的最小生成树4.答案:(1)如图8所示。图8 图4所示邻接表所对应的图(2)v1v2v4v5v3和v1v4v2v3v5。5分析:经过改动以后,有可能出现死循环,比如当查找的键值k小于有序表中的最小键值时,就会出现死循环。答案:(1)算法不能正常运行。(2)假设有序表的查找序列为(7,10,12,

12、16,24,39,42),当待查的键值为k=5时,出现死循环。6答案: 25 84 2l 47 15 27 68 35 20第一趟 20 15 21 25 47 27 68 35 84第二趟 15 20 21 25 35 27 47 68 84第三趟 15 20 21 25 27 35 47 68 84得到: 15 20 2l 25 27 35 47 68 84第一趟排序过程中键值的移动情况如图9所示。图9 键值移动示意图四、设计题1分析:因为是求前根序列中处于第k个位置的结点,所以本算法是按前根遍历来实现的。在这当中,访问根结点的操作就是计算器count加1,然后判断count是否等于k,等

13、于k就退出并返回指向对应结点的指针,否则继续按前根遍历往下查找。 答案:Viod search(bitreptr t;integer k) if(t!=NULL) count+; if(count=k)return(t); else search(t-lchild, k); search(t-rehild,k); 2分析:判断一个单链表是否递增,只要从起始结点开始,依次向后比较前一个结点的键值是否小于后一个结点的键值。 答案:单链表L的结构如图10所示。图10 单链表L的结构参考答案:int isviset(lklist L) /1分 p=L; /1分 while(p-next!=NULL) /1分 if(p-datanext-data) /1分p=p-next; /1分 else return(0); /1分 return(1); /1分另:整个函数结构1分。

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

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