数据结构与算法模拟试卷五
- 格式:doc
- 大小:47.00 KB
- 文档页数:3
国家二级公共基础知识(数据结构与算法)模拟试卷5(题后含答案及解析)题型有:1. 选择题选择题下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
1.某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为( )。
A.n+1B.n-1C.2nD.n/2正确答案:A解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
所以该二叉树的叶子结点数等于n+1。
知识模块:数据结构与算法2.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是( )。
A.10B.8C.6D.4正确答案:C解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
知识模块:数据结构与算法3.一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为( )。
A.16B.10C.6D.4正确答案:A解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个,故此度为1的结点个数=总结点数一叶子节点数一度为2的节点数=25.5.4=16。
知识模块:数据结构与算法4.一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为( )。
A.219B.229C.230D.231正确答案:B解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个,故总结点数=叶子节点数+度为2的节点数+度为1的节点数=80+79+70=229。
知识模块:数据结构与算法5.一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为( )。
A.219B.221C.229D.231正确答案:A解析:在二叉树中,叶子结点个数为n0,则度为2的结点数n0=n0-1。
本题中叶子结点的个数为70,所以度为2的结点个数为69,因而总结点数=叶子结点数+度为1的结点数+度为2的结点数=70+80+69=219。
数据结构与算法模考试题(含参考答案)一、单选题(共100题,每题1分,共100分)1、某公司秘书小莉经常需要用Word编辑中文公文,她希望所录入的正文都能够段首空两个字符,最简捷的操作方法是:A、在每次编辑公文前,先将“正文”样式修改为“首行缩进 2 字符”。
B、每次编辑公文时,先输入内容然后选中所有正文文本将其设为“首行缩进 2 字符”。
C、在一个空白文档中将“正文”样式修改为“首行缩进 2 字符”,然后将当前样式集设为默认值。
D、将一个“正文”样式为“首行缩进 2 字符”正确答案:C2、现代微型计算机中所采用的电子元器件是:A、大规模和超大规模集成电路B、电子管C、晶体管D、小规模集成电路正确答案:A3、图书馆管理系统中实体图书和实体借阅人之间的联系是A、1:1B、1:NC、M:ND、N:1正确答案:C4、计算机网络最突出的优点是:A、资源共享和快速传输信息B、高精度计算和收发邮件C、运算速度快和快速传输信息D、存储容量大和高精度正确答案:A5、在 Excel 工作表单元格中输入公式时,F$2 的单元格引用方式称为:A、绝对地址引用B、交叉地址引用C、混合地址引用D、相对地址引用正确答案:C6、域名代码 MIL 表示:A、政府机关B、国际组织C、商业组织D、军事部门正确答案:D7、以下对 Excel 高级筛选功能,说法正确的是:A、高级筛选之前必须对数据进行排序B、利用“数据”选项卡中的“排序和筛选”组内的“筛选”命令可进行高级筛选C、高级筛选通常需要在工作表中设置条件区域D、高级筛选就是自定义筛选第 6 组正确答案:C8、软件工程的三要素是A、方法、工具和过程B、方法、工具和文档第 47 组C、方法、工具和环境D、方法、平台和管理正确答案:A9、字长是计算机的一个重要指标,在工作频率不变和 CPU 体系结构相似的前提下,字长与计算机性能的关系是:A、字长越长,计算机的数据处理速度越快B、字长越短,计算机的数据处理速度越快C、字长表示计算机的存储容量大小,字长越长计算机的读取速度越快D、字长越短,表示计算机的并行能力越强正确答案:A10、下面描述错误的是A、类中包含数据(属性)和方法(或操作)B、类中包含对数据的操作(方法)C、类是对象的实例D、类具有抽象性第 49 组正确答案:C11、在数据库的三级模式中,可以有任意多个A、模式B、内模式(物理模式)C、外模式(用户模式)正确答案:C12、以下关于计算机病毒的说法,不正确的是:A、计算机病毒一般会寄生在其他程序中B、计算机病毒一般会传染其他文件C、计算机病毒一般会具有自愈性D、计算机病毒一般会具有潜伏性正确答案:C13、CPU 的参数如 2800MHz,指的是:A、CPU 的速度B、CPU 的大小C、CPU 的时钟主频D、CPU 的字长正确答案:C14、设栈与队列初始状态为空。
国家二级C语言机试(数据结构与算法)模拟试卷5(题后含答案及解析)题型有:1. 选择题选择题1.设二叉树共有375个结点,其中度为2的结点有187个。
则度为1的结点个数是A.0B.1C.188D.不可能有这样的二叉树正确答案:A解析:二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。
二叉树的第i层至多有2i-1个结点;深度为k的二叉树至多有2k-1个结点;对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。
本题中,度为2的结点有187个,叶子结点应该有187+1=188个,度为1的结点个数=375-187-188=0。
知识模块:数据结构与算法2.在带链队列中,经过一系列正常的操作后,如果front=rear,则队列中的元素个数为A.0或1B.0C.1D.队列满正确答案:A解析:队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。
进行插入操作的端称为队尾,进行删除操作的端称为队头。
队列的链式存储也称为链队列。
为了便于操作,可给链队列添加1个头结点,并令头指针指向头结点。
队列为空的判断条件是头指针和尾指针的值相同,且均指向头结点。
当队列为空(0)或1时,front=rear。
知识模块:数据结构与算法3.设一棵树的度为3,其中没有度为2的结点,且叶子结点数为5。
该树中度为3的结点数为A.1B.2C.3D.不可能有这样的树正确答案:B解析:树的度是指一棵树中,最大的结点的度称为树的度。
本题中树的度为3,那么树中最少有一个结点的度为3。
而树中没有度为2的结点,叶子结点数为5,度为1的结点下面只有一个叶子结点。
因此,该树中含2个度为3的结点满足题目要求。
知识模块:数据结构与算法4.设二叉树共有500个结点,其中叶子结点有250个。
数据结构与算法同步训练模拟试题及答案解析(1/43)选择题第1题下列叙述中正确的是()。
A.循环队列是队列的一种链式存储结构B.循环队列是队列的一种顺序的存储结构C.循环队列是非线性结构D.循环队列是一种逻辑结构下一题(2/43)选择题第2题算法的有穷性是指()。
A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用上一题下一题(3/43)选择题第3题算法的空间复杂度是指()。
A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数上一题下一题(4/43)选择题第4题定义无符号整数类为UInt,下面可以作为类UInt实例化值的是()。
A.-369B.369C.0.369D.整数集合{1,2,3,4,5}上一题下一题(5/43)选择题第5题下列叙述正确的是()。
A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对上一题下一题(6/43)选择题第6题下列叙述中正确的是()。
A.有一个以上根结点的数据结构不一定是非线性结构B.只有一个根结点的数据结构不一定是线性结构C.循环链表是非线性结构D.双向链表是非线性结构上一题下一题(7/43)选择题第7题下列关于线性链表的叙述中,正确的是()。
A.各数据结点的存储空间可以不连续,但他们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间不需连续C.进行插入数据与删除数据时,不需要异动表中的元素D.以上说法均不对上一题下一题(8/43)选择题第8题下列叙述中正确的是()。
A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间上一题下一题(9/43)选择题第9题下列叙述中正确的是()。
数据结构模拟试题一、单项选择题1、从逻辑上可以把数据结构分成(C)A.动态结构和静态结构 B. 顺序结构和链接结构C.线性结构和非线性结构 D. 初等结构和组合结构2、下列复杂度最小的是( D)A.2nB. n!C.n2D. n×log2(n)3、下面关于线性表的叙述中,错误的是哪一个?(B )A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
4、链表不具有的特点是(B)A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比5、一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是( B)。
A. 2 3 4 1 5B. 5 4 1 3 2C. 2 3 1 4 5D. 1 5 43 26、具有10 个叶结点的二叉树中有( B)个度为2 的结点。
A.8 B.9 C.10 D.ll7、在一个单链表中,若p 所指结点不是最后结点,在p 之后插入s 所指结点,则执行( B)A. s->link=p; p->link=s;B. s->link=p->link; p->link=s;C. s->link=p->link; p=s;D. p->link=s; s->link=p;8、栈和队列的共同点是(C)。
A. 都是先进先出B. 都是先进后出C. 只允许在端点处插入和删除元素D. 没有共同点9、在平衡二叉树中插入一个结点后造成了不平衡,设最低的不平衡结点为A,并已知A的左孩子的平衡因子为0 右孩子的平衡因子为1,则应作( ) 型调整以使其平衡。
A. LLB. LRC. RLD. RR10、利用二叉链表存储树,则根结点的右指针是(C )。
数据结构模拟试题5参考答案一、选择题(20分)1-5 C C D A A6-10 D B C B B二、填空题(20分)1.结点*p的左右链域为空2.深度优先3.N-14.A[N/2]5.sq.front=(sq.fron+1)%M (sq.rear+1)%M = = sq.front 6.4,9,14,17,207.0 入度减1 环三、应用题(30分)1.参考答案如下:1)二叉树2)对应的森林·2·数据结构上机实验与习题解析2.参考答案如下:3.参考答案如下:1)G1的邻接表和G1的逆邻接表2)G1的强连通分量第3部分模拟试题及参考答案·3·4.参考答案如下:2)所有字符的哈夫曼编码如下:A(7): 0011B(19): 011C(5): 0010D(16): 010E(42): 01F(11): 0005.参考答案如下:事件的发生时间活动的开始时间·4·数据结构上机实验与习题解析6.参考答案如下:1)该序列是一个小根堆四.算法设计题(30分)1.算法源代码如下:void fun(bitree T, char x, int m){ if(T){ m++;if(T->data==x) {printf("%d",m); return ;}fun (T->lchild,x,m);fun (T->rchild,x,m);}}main(){ bitree bt;int m=0;fun(bt,m);}2.算法源代码如下:#define maxsizetypedef struct{int elem[maxsize];第3部分模拟试题及参考答案·5·int top[2];}stack;stack s;1)入栈操作int push(int i,int x){ if(i<0||i>1) { printf("输入数据有误"); return 0;}if(s.top[1]-s.top[0]==1) {printf("栈满"); return 0;}switch(i){ case 0: s.elem[++s.top[0]]=x; break;case 1: s.elem[--s.top[1]]=x;}return 1;}2)出栈操作int pop(int i, int *x){ if(i<0||i>1) { printf("输入数据有误"); return 0;}switch(i){ case 0:if(s.top[0]==-1) {printf("栈空"); return -1;}else *x=s.elem[s.top[0]--];break;case 1:if(s.top[0]==maxsize) {printf("栈空"); return -1;}else *x=s.elem[s.top[1]++];}return 1;}3.算法源代码如下:void dijkshort(mgraph G,int v){int s[30]; int d[30]; int pre[30];int i,j,k,p,min;for(i=1;i<=G.vexnum;i++){ d[i]=G.arcs[v][i]; s[i]=0;if(d[i]<32767) pre[i]=v;else pre[i]=0;}s[v]=1;for(i=1;i<=G.vexnum;i++){ min=32767; k=0;·6·数据结构上机实验与习题解析for(j=1;j<=G.vexnum;j++)if(!s[j]&&d[j]<min) {min=d[j];k=j;}if(k==0) /*已没有顶点可往第一组加*/return;else{ s[k]=1; /*将找到的顶点加入到第一组中*/for(j=1;j<=G.vexnum;j++) /*修改第二组中顶点的距离值*/if(!s[j]&&d[j]>d[k]+G.arcs[k][j]) { d[j]=d[k]+G.arcs[k][j]; pre[j]=k;}}for(j=1;j<=G.vexnum;j++) /*输出结果*/if(pre[j]){ printf("\n%c",G.vexs[j]); p=pre[j];while(p){printf("<%c",G.vexs[p]);p=pre[p];}printf(": %d",d[j]); }elseif(j!=v) printf("\n%c<%c : no path",G.vexs[j],G.vexs[v]);}。
《数据结构与算法》模拟题一、填空题:(共15分)(每空一分)1.按照排序时,存放数据的设备,排序可分为<1> 内部排序和<2> 外部排序。
2.图的常用的两种存储结构是<3> 邻接矩阵存储和<4>邻接表面存储。
3.数据结构中的三种基本的结构形式是<5> x线性结构和<6> 树形结构、<7> 图形结构。
4.一个高度为6的二元树,最多有<8> 63 个结点。
5.线性查找的时间复杂度为:<9> ,折半查找的时间复杂度为:<10> 、堆分类的时间复杂度为:<11> 。
6.在采用散列法进行查找时,为了减少冲突的机会,散列函数必须具有较好的随机性,在我们介绍的几种散列函数构造法中,随机性最好的是<12>随机数法、最简单的构造方法是<13> 除留余数法。
7.线性表的三种存储结构是:数组、<14> 链表、<15>静态链表。
二、回答下列问题:(共30分)1.现有如右图的树,回答如下问题:A)根结点有:6B)叶结点有:5C)具有作大度的结点:9和10D)结点☐的祖先是:0和2E)结点☐的后代是:102.栈存放在数组A[m]中,栈底位置是m-1。
试问:A)栈空的条件是什么?B)栈满的条件是什么?3.数据结构和抽象数据型的区别与联系:4.已知一株非空二元树,其先根与中根遍历的结果为:先根:ABCDEFGHI中跟:CBEDAGFHI将此二元树构造出来。
5.分析下列程序的运行时间:A)void mystery(int n){int i, j, k;for(i=1; i<n; i++)for(j=i+1; j<=n; j++)for(k=1; k<=j; k++){some statement requiring O(1) time;} }B)void podd(int n){int I, j, x, y;for(I=1; I<=n; I++)if( odd(I ) ){for(j=I; j<=n; j++)x=x+1;for(j=1; j<=I; j++)y=y+1;}}6.已知数学表达式是(3+b)sin(x+5)—a/x2,求该表达式的波兰表示法的前缀和后缀表示(要求给出过程)。
数据结构试卷(一)一、单选题(每题 2 分,共20分)1.栈和队列的共同特点是( )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
A.688 B.678 C.692 D.6965.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
数据结构与算法模拟测试题数据结构与算法是计算机科学中非常重要的基础知识,它们对于编写高效、可靠的程序起着至关重要的作用。
以下是一组数据结构与算法的模拟测试题,希望能帮助您巩固和检验对这部分知识的掌握程度。
一、选择题(每题 5 分,共 30 分)1、在一个具有 n 个元素的有序单链表中插入一个新元素,平均需要移动的元素个数为()A nB n/2C (n + 1)/2D log₂n2、设栈的初始状态为空,元素 1、2、3、4、5 依次入栈,出栈序列不可能是()A 5 4 3 2 1B 2 1 5 4 3C 2 1 3 4 5D 1 2 5 4 33、对于一个具有 n 个顶点的无向图,若采用邻接矩阵存储,则该矩阵的大小为()A nB n²C n(n 1)/2D n(n + 1)/24、以下排序算法中,在最坏情况下时间复杂度不是O(n²)的是()A 冒泡排序B 选择排序C 插入排序D 快速排序5、已知一棵二叉树的先序遍历序列为 ABCDEFG,中序遍历序列为 CBDAEGF,则其后序遍历序列为()A CDBAFGEB CDBGFEAC CDBAGFED CDGBFEA6、以下数据结构中,不属于线性结构的是()A 队列B 栈C 二叉树D 线性表二、填空题(每题 5 分,共 30 分)1、设一棵完全二叉树共有 700 个结点,则在该二叉树中有______个叶子结点。
2、对于顺序存储的线性表,访问第 i 个元素的时间复杂度为______。
3、在一个长度为 n 的顺序表中删除第 i 个元素(1≤i≤n),需要向前移动______个元素。
4、若对序列(49, 38, 65, 97, 76, 13, 27)进行冒泡排序,在第一趟排序过程中,需要进行相邻元素比较的次数为______。
5、具有 10 个顶点的无向完全图,其边的数量为______。
6、已知一个图的邻接表如下所示,从顶点 1 出发进行深度优先遍历的序列为______。
数据结构与算法分析模拟试卷一、选择题(共30题,每题2分,共60分)1.下列哪种数据结构的插入和删除操作最快?A.数组B.链表C.栈D.队列2.下列哪种排序算法的时间复杂度最低?A.冒泡排序B.插入排序C.快速排序D.选择排序3.下列哪种算法对于有序数组查找最快?A.二分查找B.线性查找C.哈希查找D.顺序查找4.在二叉树中,每个节点的子节点个数为:A.0B.1C.2D.35.在堆排序中,是通过比较节点的_________进行排序。
A.父节点B.子节点C.兄弟节点D.祖先节点6.下列哪种图算法用于解决最小生成树问题?A. Dijkstra算法B. Kruskal算法C. Floyd算法D. Prim算法7.下列哪个数据结构可以实现先进先出(FIFO)的特性?A.栈B.队列C.哈希表D.二叉树8.程序中的递归调用最好使用的数据结构是:A.数组B.链表C.栈D.队列9.在散列算法中,解决哈希冲突问题的方法不包括:A.链地址法B.开放地址法C.拉链地址法D.数组地址法10.下列哪个排序算法是稳定的?A.堆排序B.快速排序C.希尔排序D.冒泡排序11.下列哪个不是栈的特性?A.FILO(先进后出)B.LIFO(后进先出)C.允许插入和删除的两端D.限制只能访问栈顶元素12.下列哪种排序算法是非比较排序?A.冒泡排序B.归并排序C.计数排序D.插入排序13.下列哪个不是队列的特性?A.FIFO(先进先出)B.允许插入和删除的两端C.LIFO(后进先出)D.限制只能访问队头元素14.在图的表示方法中,邻接矩阵需要的空间复杂度为:A.O(n^2)B. O(nlogn)C.O(n)D. O(logn)15.实现快速查找的数据结构是:A.堆B.链表C.散列表16.下列哪个排序算法平均情况下的时间复杂度最高?A.冒泡排序B.归并排序C.快速排序D.插入排序17.关于二叉树的说法,不正确的是:A.二叉树中每个节点最多有2个子节点B.二叉树的遍历方式包括前序、中序、后序和层序C.二叉树的高度为根节点到叶子节点的最长路径D.二叉树的节点数等于其边数18.下列哪个不是堆的特性?A.完全二叉树结构B.任意节点大于其子节点C.最小堆中,根节点是最小值D. 插入和删除操作复杂度都为O(logn)19.在哈希表中运用的散列函数不包括:A.取模法B.平方取中法D.直接映射法20. 下列哪种排序算法可以在最坏情况下保持O(nlogn)的时间复杂度?A.冒泡排序B.归并排序C.快速排序D.插入排序21.将一个有序数组构建成二叉树,可以采用的算法是:A.快速排序B.堆排序C.平衡查找树D.二分查找22.图中寻找最短路径的算法是:A. Dijkstra算法B. Kruskal算法C. Floyd算法D. Prim算法23.下列哪个数据结构是线性表的实现方法?B.栈C.哈希表D.二叉树24.下列哪种排序算法的平均时间复杂度最低?A.冒泡排序B.插入排序C.快速排序D.选择排序25.在树的遍历中,前序遍历的顺序是:A.根-左-右B.左-根-右C.左-右-根D.右-左-根26.下列哪种数据结构适合实现缓存功能?A.数组B.链表C.栈D.队列27.下列哪个查找算法需要有序数组?A.二分查找B.线性查找C.哈希查找D.顺序查找28.下列哪种排序算法是稳定的?A.快速排序B.归并排序C.希尔排序D.选择排序29.下列哪个不是栈的特性?A.先进后出(FILO)B.后进先出(LIFO)C.允许插入和删除的两端D.限制只能访问栈顶元素30.下列哪个查找算法需要哈希表?A.二分查找B.线性查找C.哈希查找D.顺序查找二、填空题(共10题,每题2分,共20分)1.折半查找的时间复杂度是_______。
《算法与数据结构》模拟试题5(参考答案)一、填空题(每小题2分,共18分)1、 线性结构 树形结构 图(或网)状结构2、 时间复杂度 空间复杂度3、 物理上的相邻 指针4、 操作受限 后进先出(先进后出)5、 13406、左子树 右子树7、 顶点数 对称矩阵8、 顺序存储且有序 散列存储9、索引 散列二、单项选择题(请将答案写在题目后的括号中。
每题2分,共18分)三、分析题(每题6分,共30分)1、 解:所构造的Huffman 树如下图所示。
WPL=(19+21+32)×2+(6+7+10)×4+(2+3)×5=2612、解:该网的邻接链表如下图所示:从顶点V1出发的广度优先搜索的顶点序列是1→2→4→5→3,相应的生成树如下:3、解:将关键字序列(15,21,13,7,4,9,25,19,23)生成二叉排序树T的过程如图(a)所示;删除13之后的二叉排序树T1如图(b)所示。
按Kruskal算法得到的最小生成树从顶点V1出发广度优先搜索生成树4、 解:根据所给定的散列函数和处理冲突方法,得到的散列表结构如下:成功查找的平均查找长度:ASL =(1×8+2×2+3×1)/11=17/11图(b) 删除13后的二叉排序树 图(a) 生成的二叉排序树T 的过程5、解:采用增量序列为5, 3, 1的希尔排序法,做非递减排序时的每一趟结果如下:初始关键字:15,29,13,40,52,9,3 8,27,17,45第一趟:9,29, 13, 17, 45, 15, 38, 27, 40, 52第二趟:9,27, 13, 17, 29, 15, 38, 45, 40, 52第三趟:9,13, 15, 17, 27, 29, 38, 40, 45, 52四、算法填空(每空2分,共20分)请在下面各算法的空白处填上相应语句实现算法功能。
每个空白处只能填一个语句。
数据结构与算法考试模拟题+参考答案一、单选题(共100题,每题1分,共100分)1、某企业为了组建内部办公网络,需要具备的设备是:A、大容量硬盘B、路由器C、DVD 光盘D、投影仪正确答案:B2、计算机指令由两部分组成,它们是:A、操作数和结果B、数据和字符C、运算符和运算数D、操作码和操作数正确答案:D3、在 2017 年的某一天,使用 Excel 2010 输入日期,并显示为“2017 年 2 月 1 日”,最快捷的操作方法是:A、输入“2017/2/1”,并设置格式B、输入“2/1”,并设置格式C、输入“17/2/1”,并设置格式D、直接输入“17/2/1”即可正确答案:B4、学校规定一个年级的所有班配备一名辅导员,则实体班级与实体辅导员之间的联系是A、多对多B、多对一C、一对一D、一对多正确答案:B5、设栈与队列初始状态为空。
将元素A,B,C,D,E,F,G,H 依次轮流入栈和入队,然后依次轮流退队和出栈,则输出序列为A、B,G,D,E,F,C,H,AB、G,B,E,D,C,F,A,HC、D,C,B,A,E,F,G,HD、A,B,C,D,H,G,F,E正确答案:A6、某二叉树的中序遍历序列为 CBADE ,后序遍历序列为 CBEDA ,则前序遍历序列为A、ABCDEB、CBEDAC、CBADED、EDCBA正确答案:A7、在 Word 文档中,不可直接操作的是:A、录制屏幕操作视频B、插入 Excel 图表C、插入 SmartArtD、屏幕截图第 6 组正确答案:A8、Internet 的四层结构分别是:A、物理层、数据链路层、网络层和传输层B、网络接口层、网络层、传输层和应用层C、应用层、表示层、传输层和网络层D、应用层、传输层、通信子网层和物理层正确答案:B9、树的度为 3,且有 9 个度为 3 的结点,5 个度为 1 的结点,但没有度为 2 的结点。
则该树中的叶子结点数为A、33B、18C、19D、32正确答案:C10、设栈的顺序存储空间为 S(1:m),初始状态为 top=m+1。
《算法与数据结构》模拟试题5一、填空题(每小题2分,共18分)1、对于给定的n个元素,可以构造出的逻辑结构有集合, ,和四种。
2、数据结构中评价算法的两个重要指标是和。
3、顺序存储结构是通过表示数据元素之间的(逻辑)关系;链式存储结构是通过表示数据元素之间的(逻辑)关系。
4、栈是的线性表,其操作数据的基本原则是。
5、设有一个二维数组A[0…9][0…9],若每个元素占5个基本存储单元,A[0][0]的地址是1000,若按行优先(以行为主)顺序存储,则A[6][8]的存储地址是。
6、二叉树由根结点,和三个基本单元组成。
7、若采用邻接矩阵存储一个图所需要的存储单元取决于图的;无向图的邻接矩阵一定是。
8、在查找时,若采用折半查找,要求线性表,而哈希表的查找,要求线性表。
9、对于文件,按物理结构划分,可分为顺序文件、文件、文件和多关键字文件。
二、单项选择题(请将答案写在题目后的括号中。
每题2分,共18分)1、有如下递归函数fact(n),其时间复杂度是()。
Fact(int n){ if (n<=1) return 1;else return(n*fact(n-1)) ;}(A)O(n) (B)O(n2) (C)O(㏒2n) (D)O(n㏒2n)2、以head为头结点的非空单循环链表的尾结点p的特点是()。
(A)p->next=NULL;(B)p=NULL;(C)p->next=head;(D)p=head;3、设有一个栈顶指针为top的顺序栈S,top为0时表示栈空,则从S中取出一个元素保存在P中执行的操作是()。
(A)p=S[top++];(B)p=S[++top];(C)p=S[--top];(D)p=S[top--];4、广义表(a, (a, b), d, e, ((i, j), k))的长度是,深度是。
()(A)6,3 (B)5,3 (C)6,4 (D)6,25、当一棵有n个结点的二叉树按层次从上到下,同层次从左到右将(结点)数据存储在一维数组A[1…n]中时,数组中第i个结点的左子结点是。
数据结构与算法分析模拟试题及答案一、选择题1. 下列哪种数据结构是先进先出(FIFO)的?A. 栈B. 队列C. 树D. 图答案:B2. 在排序算法中,哪一种算法的时间复杂度最低?A. 冒泡排序B. 快速排序C. 插入排序D. 堆排序答案:D3. 下列哪种算法不属于贪心算法?A. 背包问题B. 最短路径问题C. 活动选择问题D. 最小生成树问题答案:C4. 在二叉树中,下列哪种遍历方式是先访问左子树,再访问右子树?A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:C二、填空题1. 在链表中,每个节点包含两个域:数据域和______域。
答案:指针2. 在二分查找法中,每次比较的中间元素的下标为______。
答案:(low + high) / 23. 快速排序算法的时间复杂度为______。
答案:O(nlogn)4. 最小生成树算法中,普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法的时间复杂度分别为______和______。
答案:O(n^2),O(elogn)三、判断题1. 线性表是一种随机存取的数据结构。
()答案:正确2. 在二叉树中,每个节点的度都不超过2。
()答案:正确3. 贪心算法在每一步都选择当前最优解,一定能得到全局最优解。
()答案:错误4. 在排序算法中,冒泡排序算法的时间复杂度最低。
()答案:错误四、简答题1. 请简述快速排序算法的基本思想。
答案:快速排序的基本思想是分治法。
首先选取一个基准元素,将比基准元素小的元素放在其左边,比基准元素大的元素放在其右边。
然后递归地对左右两边的子数组进行快速排序。
2. 请简述二分查找法的基本思想。
答案:二分查找法的基本思想是折半查找。
首先确定待查找区间,然后计算中间元素的下标。
若中间元素等于目标值,则查找成功;若中间元素小于目标值,则在左半区间继续查找;若中间元素大于目标值,则在右半区间继续查找。
重复以上过程,直到查找成功或区间为空。
2023算法与数据结构模拟试题及参考答案算法与数据结构模拟试题一、单选题1. 数据是信息的载体,它有( )几种形式。
A. 整数和实型数B. 字符串C. 图像和声音D. 信息E. 磁盘文件2. 在算法分析与数据结构中,算法描述方法有( )。
A. 自然语言B. 框图C. 类计算机语言D. 数据结构3. 常用的线性表存贮结构有( )。
A. 顺序存贮结构B. 链表存贮结构C. 队列存贮结构D. 堆栈存贮结构E. 顺序存贮与链表存贮混合结构 4. 一维数组元素的类型可以是( )。
A. 简单变量,如整数、浮点数B. 复合变量,如结构体、数组C. 只有简单变量D. 指针变量E. 字符串5. 假设以链表的方式实现堆栈,top为栈顶指针,指向类型为linkstack 类型,下述程序实现将堆栈初始化为空栈的操作。
程序( )是正确的。
A. void INITSTACK( linkstack __top ) { top = NULL;};B. void INITSTACK(linkstack __ top ) { top = -1;};C. void INITSTACK(linkstack __ top ) { top = 0;};D. void INITSTACK(linkstack __ top ) { top =空;};6. 下列排序算法中哪些是不稳定的?( )A. 冒泡排序B. 选择排序C. 快速排序D. 堆排序算法与数据结构模拟试题二、多选题1. 线性表中的元素只能是简单类型。
( )2. 线性表是数组。
( )3. 如果入队与出队的操作顺序不同,其输出元素的顺序可以与输入元素的顺序不同。
( )4. 栈满是数据对象栈的固有操作。
( )5. 二叉树只有前序、中序和后序三种遍历运算。
( )6. 数据结构中只研究了二叉树,对一般树没有给出解决问题的算法。
( )7. 在单向链表中,在X指向的结点后插入结点,对应的方法与X是否是头指针无关。
数据结构试卷(1)一、选择题(30分)1.设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为()。
(A) 20 (B) 30 (C) 40 (D) 452.执行一趟快速排序能够得到的序列是()。
(A) [41,12,34,45,27] 55 [72,63](B) [45,34,12,41] 55 [72,63,27](C) [63,12,34,45,27] 55 [41,72](D) [12,27,45,41] 55 [34,63,72]3.设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是()。
(A) head==0 (B) head->next==0(C) head->next==head (D) head!=04.时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是()。
(A) 堆排序(B) 冒泡排序(C) 希尔排序(D) 快速排序5.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是()。
(A) 空或只有一个结点(B) 高度等于其结点数(C) 任一结点无左孩子(D) 任一结点无右孩子6.一趟排序结束后不一定能够选出一个元素放在其最终位置上的是()。
(A) 堆排序(B) 冒泡排序(C) 快速排序(D) 希尔排序7.设某棵三叉树中有40个结点,则该三叉树的最小高度为()。
(A) 3 (B) 4 (C) 5 (D) 68.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。
(A) O(n) (B) O(n2) (C) O(n1/2) (D) O(1og2n)9.二路归并排序的时间复杂度为()。
(A) O(n) (B) O(n2) (C) O(nlog2n) (D) O(1og2n)10. 深度为k的完全二叉树中最少有()个结点。
(A) 2k-1-1 (B) 2k-1(C) 2k-1+1 (D) 2k-111.设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为()。
模拟试题(一)一、单项选择题(每小题2 分,共20分)(1)以下数据结构中哪一个是线性结构?()A)有向图B)队列C)线索二叉树D)B树(2)在一个单链表la中,若要在当前由指针p指向的结点后面插入一个由q指向的结点,则执行如下()语句序列。
A)p=q; p->next=q; B)p->next=q; q->next=p;C)p->next=q->next; p=q; D)q->next=p->next; p->next=q;(3)( )不是队列的基本运算。
A)在队列第i个元素之后插入一个元素B)从队头删除一个元素C)判断一个队列是否为空D)读取队头元素的值(4)字符A、B、C依次进入一个栈,按出栈的先后顺序组成不同的字符串,至多可以组成()个不同的字符串。
A)14 B)5 C)6 D)8(5)由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为()。
A)11 B)35 C)19 D)53 以下6-8题基于下图:(6)该二叉树结点的前序遍历的序列为()。
A)E、G、F、A、C、D、B B)E、A、G、C、F、B、DC)E、A、C、B、D、G、F D)E、G、A、C、D、F、B (7)该二叉树结点的中序遍历的序列为()。
A)A、B、C、D、E、G、F B)E、A、G、C、F、B、DC)E、A、C、B、D、G、F D)B、D、C、A、F、G、E (8)该二叉树的按层遍历的序列为()。
A)E、G、F、A、C、D、B B)E、A、C、B、D、G、FC)E、A、G、C、F、B、D D)E、G、A、C、D、F、B (9)下面关于图的存储的叙述中正确的是()。
A)用邻接表法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关B)用邻接表法存储图,占用的存储空间大小与图中边数和结点个数都有关C)用邻接矩阵法存储图,占用的存储空间大小与图中结点个数和边数都有关(与边数无关)D )用邻接矩阵法存储图,占用的存储空间大小只与图中边数有关,而与结点个数无关 (10)设有关键码序列(q,g,m,z,a,n,p,x,h),下面哪一个序列是从上述序列出发建堆的结果?( )A )a,g,h,m,n,p,q,x,zB )a,g,m,h,q,n,p,x,zC )g,m,q,a,n,p,x,h,zD )h,g,m,p,a,n,q,x,z 二、(每小题4分,共8分)已知一个6⨯5稀疏矩阵如下所示,试:⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡--007000000520000000100000010000 (1)写出它的三元组线性表;(2)给出三元组线性表的顺序存储表示。
国家二级ACCESS机试选择题(数据结构与算法)模拟试卷5(总分:60.00,做题时间:90分钟)一、选择题(总题数:30,分数:60.00)1.设顺序表的长度为n。
下列算法中,最坏情况下比较次数小于n的是(分数:2.00)A.寻找最大项√B.堆排序C.快速排序D.顺序查找法解析:解析:如果顺序表是线性存储的(不包括线性的链式表),那么元素要不就是从大到小,要不就是小到大的顺序,假设第一个数就是最大值,那么需要比较1次,n一1应该是最坏情况下要比较的次数,所以选项A正确。
2.设栈的顺序存储空间为S(1:m),初始状态为top=m+1。
现经过一系列正常的入栈与退栈操作后,top=0;则栈中的元素个数为(分数:2.00)A.不可能√B.m+1C.1D.m解析:解析:栈是向上增长的,每次压入一个元素,栈的TOP指针向上移动一位,即top-1。
对于这个题目,由于top初始值等于m+1,此时入栈一个元素,top值减1,即m+1-1=m,依次类推,当栈满时,top 的值等于1,不会出现top的值等于0。
所以选项A正确。
3.某二叉树的后序遍历序列与中序遍历序列相同,均为ABCDEF,则按层次输出(同一层从左到右)的序列为(分数:2.00)A.FEDCBA √B.CBAFEDC.DEFCBAD.ABCDEF解析:解析:后序遍历次序:左右根;中序遍历次序:左根右。
由定义可知:①后序遍历中最后一个是树的根结点,即F结点;②在中序遍历中,根结点左边的是左子树集,右边的是右子树集,即ABCDE是根结点F的左子树集合。
问题就会转化为:求后序遍历是ABC。
DE,中序遍历是ABCDE的子树。
方法同上,因为中序遍历中,E结点右边没有结点了,所以E结点不包含右子树,否则就会被分为2个子问题。
以下是这道题的详细推理过程:步骤1:由ABCDEF。
得出根结点为F,由中序遍历可知:{ABCDE}F,右子树为空;步骤2:由ABCDE得出左子树集合的根节点为E,由中序可知:{ABCD}E,右子树为空;步骤3:同理,二所以按层次输出(同一层从左到右)的序列为FEDCBA。
《数据结构与算法》模拟试卷五《数据结构与算法》模拟试卷五一、名词解释(5*3=15分)数据结构完全二叉数 AOE网队列拓扑排序二、填空题(1*16=16分)1.在一个长度为n的循环链表中,删除其元素值为x的结点的时间复杂度为______。
2.已知指针p指向某单链表中的一个结点,则判别该结点有且仅有一个后继结点的条件是______。
3.如果入栈序列是1,3,5,…,97,99,且出栈序列的第一个元素为99,则出栈序列中第30个元素为______。
4.一种抽象数据类型包括______和______两个部分。
5.线性表的链式存储方式中,每个结点包括两个域,分别是______和______ 。
6.在以HL为表头指针的带表头附加结点的单链表和循环单链表中,判断链表为空的条件分别为单链表中______ 和 ______ 。
7.在一棵二叉树中,度为0的结点的个数是10,则度为2的结点个数是_________8.一个有n个结点的二叉树的深度最大为___________,最小为__________9.n个定点的连通图至少有_______条边。
10.二分查找的存储结构仅限于________,且是__________11.在对一组记录(54,38,96,72,60,15,60,45,83)进行直接插入排序时,当把第6个记录60插入到有序表时,为寻找插入位置需比较________次。
三、选择题(1*10=10分)1.在一个不带头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行 _______。
A、HL=p; p->next=HL;B、p->next=HL; HL=p;C、p->next=HL; p=HL;D、p->next=HL->next; HL->nxet=p;2.在一个长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n+1)时,需要从前向后依次移动_______个元素。
《数据结构与算法》模拟试卷五
一、名词解释(5*3=15分)
数据结构完全二叉数 AOE网队列拓扑排序
二、填空题(1*16=16分)
1.在一个长度为n的循环链表中,删除其元素值为x的结点的时间复杂度为
______。
2.已知指针p指向某单链表中的一个结点,则判别该结点有且仅有一个后继结点
的条件是______。
3.如果入栈序列是1,3,5,…,97,99,且出栈序列的第一个元素为99,则出
栈序列中第30个元素为______。
4.一种抽象数据类型包括______和______两个部分。
5.线性表的链式存储方式中,每个结点包括两个域,分别是______和______ 。
6.在以HL为表头指针的带表头附加结点的单链表和循环单链表中,判断链表为
空的条件分别为单链表中______ 和 ______ 。
7.在一棵二叉树中,度为0的结点的个数是10,则度为2的结点个数是_________
8.一个有n个结点的二叉树的深度最大为___________,最小为__________
9.n个定点的连通图至少有_______条边。
10.二分查找的存储结构仅限于________,且是__________
11.在对一组记录(54,38,96,72,60,15,60,45,83)进行直接插入排序时,
当把第6个记录60插入到有序表时,为寻找插入位置需比较________次。
三、选择题(1*10=10分)
1.在一个不带头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,
则执行 _______。
A、HL=p; p->next=HL;
B、p->next=HL; HL=p;
C、p->next=HL; p=HL;
D、p->next=HL->next; HL->nxet=p;
2.在一个长度为n的顺序存储的线性表中,删除第i个元素(1≤i≤n+1)时,
需要从前向后依次移动_______个元素。
A、n-i
B、n-i+1
C、n-i-1
D、i
3.在一个顺序队列中,队首指针指向队首元素的_______位置。
A、当前
B、后一个
C、前一个
D、后面
4.计算递归函数如不用递归过程通常借助的数据结构是____。
A、线性表
B、双向队列
C、树
D、栈
5.如果T2是由有序树T转换来的二叉树,则T中结点的后序排列是T2结点的
____。
A、先序排列
B、中序排列
C、后序排列
D、层序排列
6.栈的插入和删除操作在_____进行。
7. A 栈顶 B 栈底 C 任意位置 D 指定位置
8.由权值分别为11,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径
长度为_____。
A 24
B 71
C 48
D 53
8. 图的广度优先搜索类似于树的_____遍历。
A.先根 B.中根 C. 后根 D.层次
9. 在单链表中插入一个结点,要修改_____个结点的指针域。
A 1
B 2
C 3
D 4
10.二叉树有_____种基本形态。
A 2
B 3
C 4
D 5
四、计算和应用题(共21分)
1、假设用迪杰斯特拉(Dijkstra)算法求下列图中从顶点a到其余各顶点的最短路径,按求解过程依次写出各条最短路径及其长度。
2
12.R 13.48 14.70 15.33 16.65 17.24 18.56 19.12 20.92
写出在将它调整为大根堆的过程中每一次筛选后R的状态。
3、已知一组关键字为(19,14,23,1,68,20,27,83,99),试按哈希函数H(key) = key Mod 7和链地址法处理冲突构造哈希表
(同一链表中关键字按自小到大排列)。
五、算法填空(2*9=18分)
1.如果希望循环队列中的向量单元都能得到利用,则可设置一个标志域tag,每当尾指针和头指针值相同时,以tag的值为0或1来区分队列状态是“空”还是“满”。
请对下列函数填空,使其分别实现与此结构相应的入队列和出队列的算法。
int EnQueue(CirQueue *Q,DataType x){
if( (1) ) return 0;
Q->data[Q->rear]=x;
Q->rear=(Q->rear+1)% MAXQSIZE
(2)
return 1;
}
int DeQueue(CirQueue *Q,DataType *x){
if( (3) ) return 0;
*x=Q->data[Q->front];
Q->front= (4) ;
(5) ;
return 1;
}
(1)
(2)
(3)
(4)
(5)
2.下列算法利用二分查找方法在有序表r中插入元素x,并保持表r的有序性,其中参数*n为表r的长度。
请在空缺处填入合适的内容,使其成为一个完整的算法。
void BinInsert(SeqList r,int *n,DataType x)
{ int low=1,high=*n,mid,i;
while(low<=high)
{ mid= (1) ;
if (x.key<r[mid].key)high=mid-1;
else (2) ;
}
for(i=*n; (3) ;i--)
r[i+1]=r[i];
(4) ;
*n++;
}
(1)
(2)
(3)
(4)
六、算法设计题(2*10=20分)
1.试写一个算法,逆置带头结点的单链表 L
2.给出二叉树的二叉链表存储结构,编写递归算法,计算二叉树中的叶子结点个
数。