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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据结构与算法试题.docx

1、数据结构与算法试题一、 选择题1.在逻辑上可以把数据结构分成( A)A.线性结构和非线性结构 B.动态结构和静态结构C.紧凑结构和非紧凑结构 D.内部结构和外部结构2. 单链表中各结点之间的地址(C) A.必须连续 B.部分必须连续 C.不一定连续 D.以上均不对3.在一个长度为n的顺序表中向第i个元素(0ifront=L C.P=NULL D.P-rear=L12. 已知P为单链表中的非首尾结点,删除P结点的后继结点Q的语句为(A)。 A.P-NEXT=Q-NEXT;FREE(Q); B.Q-NEXT=P; FREE(Q); C.Q-NEXT=P-NEXT;FREE(Q); D.P-NEXT

2、=S;S-NEXT=P;13.循环队列SQ队满的条件是(B)。 A.SQ-rear=SQ-front B. (SQ-rear+1)%MAXLEN=SQ-front C.SQ-rear=0 D. SQ-front=014.一组记录的排序码为(46,79,56,38,40,84),则利用堆排序的方法建立的初始堆为(B)。A、79,46,56,38,40,80 B、84,79,56,38,40,46C、84,79,56,46,40,38 D、84,56,79,40,46,3815.排序趟数与序列原始状态(原始排列)有关的排序方法是(ACD)方法。A、插入排序 B、选择排序 C、冒泡排序 D、快速排序

3、16.下列排序方法中,(B)是稳定的排序方法。A、直接选择排序 B、二分法插入排序C、希尔排序 D、快速排序17.数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中(C)的两趟排序后的结果。A、选择排序 B、冒泡排序C、插入排序 D、堆排序18.对序列(15,9,7,8,20,-1,4)进行排序,进行一趟排序后,数据的排列变为(4,9,-1,8,20,7,15),则采用的是(C)排序。A、选择 B、快速C、希尔 D、冒泡19.一组待排序记录的关键字为(46,79,56,38,40,84),则利用快速排序,以第一个记录为基准元素得到的一次划分结果为( C )。A(38,40,

4、46,56,79,84) B、(40,38,46,79,56,84)C、(40,38,46,56,79,84)D、(40,38,46,84,56,79)20.用直接插入排序对下面四个序列进行排序(由小到大),元素比较次数最少的是( C )。A、94,32,40,90,80,46,21,69 B、32,40,21,46,69,94,90,80C 21,32,46,40,80,69,90,94 D、90,69,80,46,21,32,94,4021.若用冒泡排序对关键字序列(18,16,14,12,10,8)进行从小到大的排序,所需进行的关键字比较总次数是(B)。A、10 B、15 C、21 D、

5、34 22.就排序算法所用的辅助空间而言,堆排序、快速排序和归并排序的关系(A)。A、堆排序快速排序归并排序 B、堆排序归并排序归并排序快速排序 D、堆排序快速排序归并排序23.最小生成树的构造可使用(B)算法。 A.Dijkstra算法 B.Prim算法 C.Haffman算法 D.Floyd算法24. 具有32个结点的完全二叉树的深度为(B)。 A. 5 B.6 C.7 D.825. 在有n个叶子结点的哈夫曼树中,其结点总数为(D)。A不确定 B2n C2n+1 D2n-126.下列陈述正确的是(B)。 A.二叉树是度为2的有序树 B. 二叉树中最多只有二棵树,且有左右子树之分 C.二叉树

6、必有度为2的结点 D. 二叉树中结点只有一个孩子时无左右之分27.先序为A,B,C的二叉树共有(A)种。 A.3 B.4 C.5 D.6 28.在树结构中,若结点B有3个兄弟,A是B的父亲结点,则A的度为(B)。 A.3 B.4 C.5 D.6 29.在一个图中,所有顶点的度数之和等于所有边数的(B)倍。A、1 B、2 C、3 D、430.n个顶点的强连通图至少有(A)边。A、n B、n-1 C、n+1 D、n (n-1)31.在一个无向图中,所有顶点的度数之和等于所有边数的(C)倍;在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的(C)倍。A、1/2 B、2 C、1 D、432.任何

7、一个无向连通图的最小生成树(B)。A、只有一棵 B、一棵或多棵 C、一定有多棵 D、可能不存在33.在图的表示法中,表示形式唯一的是(A)A、邻接矩阵表示法 B、邻接表表示法 C、逆邻接矩阵表示法 D、逆邻接表表示法34.在一个具有n个顶点的无向图中,要连通全部顶点至少需要(C)条边。 A.n B.n+1 C.n-1 D.n+235. 在一个图中,所有顶点的度数之和等于图的边数的(B)。A1/2 B2 C1 D436有7个结点的有向完全图有(C)边。 A.30 B.40 C.42 D.5637.假定在一棵二叉树中,度为2的分支结点个数为15,度为1的分支结点个数为30个,则叶子结点数为(B)。

8、A、15 B、16 C、17 D、4738.设n,m为一棵树上的两个结点,在中根遍历时,n在m前的条件是(C)。A、n在m右方 B、n是m祖先 C、n在m左方 D、n是m子孙39.某二叉树的后序遍历序列为:DABEC,中序遍历序列为:DEBAC,则前序遍历序列为(D )。A、ACBED B、DECAB C、DEABC D、CEDBA40.将一棵有100个结点的完全二叉树从上到下,从左到右依次对结点编号,根结点的编号为1,则编号为45的结点的左孩子的编号为(90),右孩子的编号为(91)。A、46 B、47 C、91 D、9141.某树中,若结点B有4个兄弟,A是B的父亲结点,则A的度为(C)。

9、A、3 B、4 C、5 D、642.下列叙述正确的是(D)A、二叉树是度为2的有序树 B、二叉树结点只有一个孩子时无左右之分 C、二叉树中必有度为2的结点 D、二叉树中最多只有两棵子树,且有左右之分43.由带权为9、2、5、7的四个叶子结点构造一棵哈夫曼树,该树的带树路径长度为(D)。A、23 B、37 C、46 D、4444在图的表示方法中,表示形式是唯一的是(C)。 A.邻接表 B.逆邻接表 C.邻接矩阵 D.其他44.下列关键字序列中,构成大根堆的是(D) A.5,8,1,3,9,6,2,7 B.9,8,1,7,5,6,2,33 C.9,8,6,3,5,l,2,7 D.9,8,6,7,5

10、,1,2,3 45.对序列(15,9,7,8,20,-1,4)进行排序,进行一趟排序后,数据的排列变为(4,9,-1,8,20,7,15),则采用的是(C)排序。A.选择 B.快速 C.希尔 D.冒泡46.设n,m为一棵树上的两个结点,在中根遍历时,n在m前的条件是(C)。A.n在m右方 B.n是m祖先 C.n在m左方 D.n是m子孙二、填空题1.树和 图 都属于非线性结构。2.顺序表中逻辑上相邻的元素在物理位置上 也 相邻。3.双向链表有两个指针域,一个指向前趋,另一个指向_后继_。4.若进栈的次序是A,B,C,D,E,写出两种出栈顺序_ABCDE、EDCBA。5.队列存取数据应遵循的原则是

11、先进先出。6.有20个结点的完全二叉树,编号为7的结点的父结点编号为 3 。7.两个序列分别为:L1=3,50,41,42,55,65,70,75,L2=3,50,41,42,65,55,.10,5,用冒泡排序法对L1和L2进行排序,交换次数较少的是序列: L1 。8.在排序方法中,从无序序列中选择关键字最小的记录,与无序区(初始为空)的第一个记录交换的排序方法,称为 选择 排序。9.有向图的边也称为 弧,用邻接矩阵存储有向图,其第i行的所有元素之和等于顶点i的 出度 。10树转换成的二叉树,其根结点的 右 子树一定为空。11.二叉排序树是一种 动态 查找表。12.对一组记录(50,40,95

12、,20,15,70,60,45,80)进行直接插入排序时,当把第7条记录60插入到有序表中时,为寻找插入位置需比较 15 次。13.在树形结构中,树根结点没有(前驱)结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有后继 结点,其余结点的后继结点可以任意多个。14.在具有n个结点的二叉树中,有n+1个空指针。15.深度为k的完全二叉树至少有2k-1个结点,至多有2k-1个结点,若按自上而下,从左到右次序给结点从1开始编号,则编号最小的叶子结点的编号是n/2+1。16.由a,b,c三个结点构成的二叉树,共有 30种不同形态,若是构成树,共有9 种形态。17.树所对应的二叉树其根结点的 右

13、子树一定为空。18.已知完全二叉树的第8层有8个结点,则其叶结点数是 68 三、综合应用题。 2.已知完全二叉树的第8层有4个结点,请计算它的叶子结点数和总结点数。(写出计算过程)。(6分)解:由题意可知,该完全二叉树有八层,其中第一层结点数为:1第二层结点数为:2第三层结点数为:4第四层结点数为:8第五层结点数为:16第六层结点数为:32第七层结点数为:64第八层结点数为:4因为第八层结点数为4,且为完全二叉树,则第八层四个结点为叶子结点,第七层前两个结点有子结点,其余62个结点无子结点,则第七层的后62个结点为叶子结点,故叶子结点数有4+62=66总结点数为1+2+4+8+16+32+64

14、+4=1313.已知数据序列10,8,18,15,7,16,写出采用直接插入算法排序时,每一趟排序的结果。(6分)解:直接插入排序过程如下所示初始列:(10),8,18,15,7,16第一趟:(8,10),18,15,7,16第二趟:(8,10,18),15,7,16第三趟:(8,10,15,18),7,16第四趟:(7,8,10,15,18),16第五趟:(7,8,10,15,16,18)6.一棵具有6层的满二叉树中结点数为多少?请写出计算公式。解:637.给定一个权集W=4,8,6,9,18,画出相应的哈夫曼树,并计算WPL。 8.已知二叉树的先序遍历序列为:ABDGHCEFI,中序遍历的

15、序列为:GDHBAECIF。请完成以下各题:(1)画出此二叉树。(2)写出它的后序遍历序列。GHABDCEFI(3)将此二叉树看作森林的二叉树表示,试将它还原为森林。(1)(2)其后序遍历的序列为:G H D B E I F C A (3) 8-1.对下面的带权无向图:(1)画出邻接矩阵。 5 5(2)画出它的一棵最小生成树。 1 10 4 6 3 7 5 解:(1) 0 5 5 0 0 0 (2)最小生成树 5 0 1 10 0 0 边为红色的 5 1 0 0 4 6 0 10 0 0 3 0 0 0 4 3 0 5 0 0 6 0 5 09.有一组关键字14,15,30,28,5,10,写

16、出冒泡排序过程的图示。解:第一趟排序结果:14,15,28,5,10,(30)第二趟排序结果:14,15,5,10,(28,30)第三趟排序结果:14,5,10,(15,28,30)第四趟排序结果:5,10,(14,15,28,30)第五趟排序结果:5,(10,14,15,28,30)第六趟排序结果:(5,10,14,15,28,30) 10.给定一个权集W=4,5,7,8,6,12,18,试画出相应的哈夫曼树,并计算其带权径长度WPL。WPL=(12+18)*2+(6+7+8)*3+(4+5)*4=15911.假设用于通信的电文仅由A、B、C、D、E、F、G、H等8个字母组成,字母在电文中出

17、现的频率分别为7、19、2、6、32、3、21、10。试为这8个字母设计哈夫曼编码。11-1对于下面所示的图,求出:(1)画出邻接矩阵和邻接表(2)求出各顶点的入度和出度解:(1)邻接矩阵 1 2 3 4 5邻接表123524354154(2)ID(1)=1,OD(1)=3;ID(2)=1,OD(2)=1;ID(3)=1,OD(3)=1;ID(4)=2,OD(4)=1;ID(5)=2,OD(5)=1;12.已知一个无向图的顶点集为a,b,c,d,e,其邻接矩阵如下,画出草图,写出从顶点a出发按深度优先搜索进行遍历的结点序列。 0 1 0 0 1 1 0 0 1 0 0 0 0 1 1 0 1

18、1 0 1 1 0 1 1 0解:acbed(1)(2)深度优先搜索:a b d c e (答案不唯一) 广度优先搜索:a b e d c (答案不唯一)13.网G的邻接矩阵如下,试画出该图,并画出它的一棵最小生成树。 0 8 10 11 0 8 0 3 0 13 10 3 0 4 0 11 0 4 0 7 0 13 0 7 0解: 最小生成树: 8 11 10 8 3 4 13 7 3 4 716.写出图的一种拓扑序列,若在它的邻接表存储结构中,每个顶点邻接表中的边结点都是按照终点序号从大到小链接的,则按此给出惟一一种拓扑序列。17.对图中所示图分别写出深度优先遍历和广度优先遍历的项点序列

19、18.对图7-21中所示图分别用克鲁斯卡尔算法和普里姆算法(从顶点2开始)求出其最小生成树。: 19.根据下图,实现下列功能:(1)建立图的邻接表;(2)输出图的拓扑序列。四、算法设计题1、单向链表中,在p指针所指向的结点前插入一个元素x,写出相关算法,并画出图形进行描述。解:#include#includetypedef int DataType;typedef struct node DataType data; struct node *next;Listnode;int Insert(Listnode *head,DataType a,int b)/这个是插入算法 Listnode *

20、p,*h,*s; int k=1; p=head; h=head-next; while(h!=NULL&knext; if(p=NULL) printf(插入失败); return 0; s=(Listnode *)malloc(sizeof(Listnode); s-data=a; s-next=h; p-next=s; return 1;void main() Listnode *H,*p; int x,y; H=(Listnode*)malloc(sizeof(Listnode); H-next=NULL; printf(请输入将被存入链表中的数(0为结束):); scanf(%d,&

21、x); while(x!=0) p=(Listnode*)malloc(sizeof(Listnode); p-data=x; p-next=H-next; H-next=p; scanf( %d,&x); printf(请输入将被插入的数:n); scanf(%d,&x); printf(请输入将被插入的数的位置:n); scanf(%d,&y); p=H-next; printf(插入前,链表:); while(p!=NULL) printf(%d,p-data); p=p-next ; if(Insert(H,x,y)/这里是调用插入算法 p=H-next; printf(插入后处理后的

22、链表:n); while(p!=NULL) printf(%d,p-data); p=p-next; printf(n); 2、在单链表中删除第i个结点,若删除成功返回1,否则返回0,并要求画出图形进行描述。解:#include#includetemplateclass SeqList public: T Delete(int i); T data5; int length;templateT SeqList:Delete(int i) int j; T x; if(length=0) throw下溢; if(ilength) throw位置异常; x=datai-1; for(j=i;jnext!=NULL) Del_Elem (p,x); /*调用删除已知结点p之后结点函数*/ return 1;elsereturn 0;int main() SeqList a; couta.length; cout请输入单链表中的数据:; for(int i=0;ia.datai; for(i=0;ia.length;i+) coutsetw(5)a.datai; coutendl; couti; a.Delete(i); coutendl; for(i=0;ia.length;i+) coutsetw(5)a.datai; coutendl;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2