数据结构与算法模拟试卷五
国家二级公共基础知识(数据结构与算法)模拟试卷5(题后含答案及解析)

国家二级公共基础知识(数据结构与算法)模拟试卷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(题后含答案及解析)

国家二级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参考答案.

数据结构模拟试题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,其数量级表示为________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构与算法》模拟试卷五
一、名词解释(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.给出二叉树的二叉链表存储结构,编写递归算法,计算二叉树中的叶子结点个
数。