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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

浙江师范大学计算机考研数据结构试题汇总.docx

1、浙江师范大学计算机考研数据结构试题汇总浙江师范大学2008年计算机考研数据结构试题数据结构一、判断题 用和表示对和错(每小题1.5分,共15分) 1. 数据元素是数据的最小单位。 ( ) 2. 当待排序记录已经从小到大排序或者已经从大到小排序时,快速排序的执行时间最省。 ( ) 3. 数组可看成线性结构的一种推广,因此与线性表一样,可以对它进行插入、删除等操作。 ( ) 4. 在树中,如果从结点K出发,存在两条分别到达K,K”的长度相等的路径,则结点K和k”互为兄弟。 ( ) 5. 最佳两叉排序树的任何子树都是最佳的。 ( ) 6. 算法和程序没有区别,所以在数据结构中两者是通用的。 ( )

2、7. 顺序存储方式只能用于存储线性结构。 ( ) 8. 在线性表链式存储结构中, 逻辑上相邻的元素在物理位置上不一定相邻。 ( ) 9. 如果某种排序算法是不稳定的,则该算法没有实际意义。 ( ) 10. 当两个字符出现的频率相同时,则其哈夫曼编码也相同。 ( ) 二、单项选择题(每小题3分,共60分) 1. 某个向量第一元素的存储地址为100,每个元素的长度为2,则第五个元素的地址是_。 A.110 B.108 C.100 D.120 2. 栈和队列的共同特点是_。 A.都是先进后出 B.都是先进先出 C.只允许在端点处插入和删除元素 D.没有共同点 3. 对线性表进行二分查找时,要求线性表

3、必须_。 A.以顺序方式存储 B.以链接方式存储 C.以顺序方式存储,且结点按关键字有序排序 D.以链接方式存储,且结点按关键字有序排序 4. 一组记录的排序码为(47、78、61、33、39、80),则利用堆排序的方法建立的初始堆为_。A.78、47、61、33、39、80 B.80、78、61、33、39、47 C.80、78、61、47、39、33 D.80、61、78、39、47、33 5. 将一棵有50个结点的完全二叉树按层编号,则对编号为25的结点x,该结点_。 A.无左、右孩子 B.有左孩子,无右孩子 C.有右孩子,无左孩子 D.有左、右孩子 6. 用快速排序方法对包含有n个关键

4、字的序列进行排序,最坏情况下的时间复杂度为_。 A.O(n) B.O(log2n) C.O(nlog2n) D.O(n2) 7. 在最坏的情况下,查找成功时二叉排序树的平均查找长度_(n+1)/2_。 A.小于顺序表的平均查找长度 B.大于顺序表的平均查找长度 C.与顺序表的平均查找长度相同 D.无法与顺序表的平均查找长度比较 8. 对序列(22,86,19,49,12,30,65,35,18)进行一趟排序后得到的结果如下: (18,12,19,22,49,30,65,35,86) ,则可以认为使用的排序方法是_。 A.选择排序 B.冒泡排序 C.快速排序 D.插入排序 9. 在线性表的下列存

5、储结构中,读取元素花费时间最少的是_。 A.顺序表 B.双链表 C.循环链表 D.单链表 10. 具有100个结点的二叉树中,若用二叉链表存储,其指针域部分用来指向结点的左、右孩子,其余_个指针域为空。 A.50 B.99 C.100 D.101 (二叉树中除根结点外都有一个分支进入,共n-1个指针) 11. 从逻辑上可以把数据结构划分为_。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 12. 以下数据结构中属于非线性结构的是_。 A.树 B.字符串 C.队列 D.栈 13. 在单链表中,若*P节点不是最后节点,在*P之后插入节点*S,则

6、其操作是_。 A.s-next=p;p-next=s; B.s-next=p-next;p-next=s; C.s-next=p-next;p=s; D.p-next=s;s-next=p; 14. 栈是一种操作受限的数据结构,其插入和删除必须在_进行。 A.栈顶 B.栈底 C.任意位置 D.指定位置 15. 设T为一颗深度为6的二叉树,则T拥有的最多结点数是_。 A.64 B.63 C.32 D.31 16. 若用冒泡法对序列(18,14,6,27,8,12,16,52,10,26,47,29,41,24)进行从小到大排序,共要进行的比较次数为_。 A.33 B.45 C.70 D.91 1

7、7. 算法的时间复杂度取决于_。 A.问题的规模 B.待处理数据的初态 C.计算机的配置 D.A和B 18. 对序列(22,86,19,49,12,30,65,35,18)进行一趟排序后得到的结果如下: (18,12,19,22,49,30,65,35,86) ,则可以认为使用的排序方法是_。 A. 选择排序 B.希尔排序 C. 快速排序 D. 插入排序 19. 若用一个大小为6的数组来实现循环队列,且当前的rear和front的值分别为0和3,当从队列中删除一个元素,再插入两个元素后,rear和front的值分别为_。 A.1,5 B.2,4 C.4,2 D.5,1 (队头front删除,队

8、尾rear插入) 20. 对长度为3的顺序表进行搜索,若搜索第一、第二、第三个元素的概率分别为1/2,1/3和1/6,则搜索任一元素的平均搜索长度为_。 A.5/3 B.2 C.7/3 D.4/3 (顺序表查找是从最后一个元素顺次向前比较。最后一个比较1次,最前边比较n次。ASL = nP1 + (n-1)P2 + + 2Pn-1+Pn )三、算法阅读选择题(每小题3分,共30分) 【算法填空 1】在画有横线的地方填写合适的内容,并依据以下提供选择的答案,回答(1)(5)中的问题。 对顺序存储的有序表进行二分查找的递归算法。int Binsch(ElemType A,int low,int h

9、igh,KeyType K) if(low=high) int mid= (1) D(low+high)/2; if(K=Amid.key)return mid; else if(KAmid.key) return(2)C.Binsch(A,low,mid-1,K); else return(3)B.Binsch(A,mid+1,high,K); Else return (4) A 14问题可供选择的答案: A.1 B.Binsch(mid+1,high) C.Binsch(low,mid-1) D.(low+high)/2 5、试问该递归算法的渐近时间复杂度是(5)。 A.O(n) B.O(

10、log2n) C.O(nlog2n) D.O(n2) 【算法填空 2】在画有横线的地方填写合适的内容,并依据以下提供选择的答案,回答(6)(10)中的问题。 位数对调:输入一个三位自然数,把这个数的百位与个位数对调,输出对调后的数。 例如:输入3位自然数:234,输出n=432。/输入的数据为整数/Program Threebit #include void main() int x,n,a,b,c printf(Input 3 bit nature data:) scanf(%d,&n) if(n99&n1000) a= (6) /求百位数 n/100 b= (7) /求十位数 (n-a*1

11、00)/10 c= (8) /求个位数 n%10 x= (9) /求新数X c*100+b*10+a printf(Number=%d/n,x); elseprintf(Inputerror!/n); 69问题可供选择的答案如下: A.n/100 B.(n-a*100)/10 C.n%10 D.c*100+b*10+a 10、试问该算法的渐近时间复杂度是(10)。 A.O(n) B.O(log2n) C.O(nlog2n) D.O(1) 四、应用题(每小题6分,共24分)1. 给定二叉树的中序遍历结果为abc, 请画出能得到此中序遍历结果的二叉树的所有形态。对应的几种先根序:bac,acb,

12、abc, cba, cab 2. 请画出下面无向图的邻接矩阵和邻接表。1000 011231202423013434024451233. 已知序列15,18,60,41,6,32,83,75,95。请给出采用冒泡排序法对该序列作升序排序时的每一趟的结果。15, 18, 41, 6, 32, 60, 75, 83, 9515, 18, 6, 32, 41, 60, 75, 8315, 6, 18, 32, 41, 60, 756, 15, 18, 32, 41, 606, 15, 18, 32, 41int flg=1; /如果上一趟比较没有交换,终止比较int i, j;For(i=0; in

13、-1 & flg=1; i+) flg=0; for(j=0; jAj+1)t=Aj; Aj=Aj+1; Aj+1=t; flg=1; 4. 有一份电文中共使用五个字符:a、b、c、d、e,它们的出现频率依次为8、14、10、4、18,请构造相应的哈夫曼树(左子树根结点的权小于等于右子树根结点的权),求出每个字符的哈夫曼编码。A: 001 B: 10 C: 01 D: 000 E: 11 WPL=3*(4+8)+ 2*(10+14+18)=3*12 + 2*42=36+84=122 五、算法设计题(21分) 1. 以邻接表为存储结构,写出连通图的深度优先搜索算法。 (9分)/-邻接表结构-ty

14、pedef struct ArcNode int adjvex; int weight; int *info; struct ArcNode *nextarc; ArcNode; typedef struct VNode VertexType data; ArcNode *firstarc; VNode,AdjListMAX_VERTEX_NUM; typedef struct AdjList vertices; int vexnum, arcnum; int kind; ALGraph; Int visitedMaxSize;/深度优先遍历void dfs(ALGraph G,int v) ArcNode *p; cout v adjvex) dfs(G,p-adjvex); p=p- nextarc; return ; void dfs1(ALGraph G) int i; cout 深度优先遍历: endl; for(i=0;i G.vexnum;i+) visitedi=0; for(i=0;i 0) return stacktop1-; else if(top2 != m+1) return stacktop2+; return NULL; /栈空

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

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