国家二级公共基础知识(数据结构与算法)模拟试卷1(共265题)_第1页
国家二级公共基础知识(数据结构与算法)模拟试卷1(共265题)_第2页
国家二级公共基础知识(数据结构与算法)模拟试卷1(共265题)_第3页
国家二级公共基础知识(数据结构与算法)模拟试卷1(共265题)_第4页
国家二级公共基础知识(数据结构与算法)模拟试卷1(共265题)_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

国家二级公共基础知识(数据结构与算法)模拟试卷1(共9套)(共265题)国家二级公共基础知识(数据结构与算法)模拟试卷第1套一、单项选择题(本题共35题,每题1.0分,共35分。)1、算法的有穷性是指A、算法程序的运行时间是有限的B、算法程序所处理的数据量是有限的C、算法程序的长度是有限的D、算法只能被有限的用户使用标准答案:A知识点解析:算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。2、下列叙述中正确的是A、算法就是程序B、设计算法时只需要考虑数据结构的设计C、设计算法时只需要考虑结果的可靠性D、以上三种说法都不对标准答案:D知识点解析:所谓算法是指解题方案的准确而完整的描述。是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。算法不等于程序,也不等于计算方法。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。3、算法的空间复杂度是指A、算法在执行过程中所需要的计算机存储空间B、算法所处理的数据量C、算法程序中的语句或指令条数D、算法在执行过程中所需要的临时工作单元数标准答案:A知识点解析:算法的空间复杂度是指执行这个算法所需要的内存空间。这个内存空间包括算法程序所占的空间,输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。4、算法的时间复杂度是指A、算法的执行时间B、算法所处理的数据量C、算法程序中的语句或指令条数D、算法在执行过程中所需要的基本运算次数标准答案:D知识点解析:算法的时间复杂度,是指执行算法所需要的计算工作量。算法的工作量可以用算法在执行过程中所需基本运算的执行次数来度量。5、下列叙述中正确的是A、算法的效率只与问题的规模有关,而与数据的存储结构无关B、算法的时间复杂度是指执行算法所需要的计算工作量C、数据的逻辑结构与存储结构是一一对应的D、算法的时间复杂度与空间复杂度一定相关标准答案:B知识点解析:算法的时间复杂度是指执行算法所需要的计算工作量。算法的工作量用算法所执行的基本运算的次数来度量,而算法所执行的基本运算次数是问题规模的函数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。算法的时问复杂度与空间复杂度并不相关。数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间的关系,是独立于计算机的;数据的存储结构是研究数据元素和数据元素之间的关系如何在计算机中表示,它们并非一一对应。算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。6、下列叙述中正确的是A、一个算法的空间复杂度大,则其时间复杂度也必定大B、一个算法的空间复杂度大,则其时间复杂度必定小C、一个算法的时间复杂度大,则其空间复杂度必定小D、算法的时间复杂度与空间复杂度没有直接关系标准答案:D知识点解析:算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模:算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。7、数据的存储结构是指A、存储在外存中的数据B、数据所占的存储空间量C、数据在计算机中的顺序存储方式D、数据的逻辑结构在计算机中的表示标准答案:D知识点解析:在对数据进行处理时,各数据元素在计算机中的存储关系,即为数据的存储结构。8、下列描述中正确的是A、一个逻辑数据结构只能有一种存储结构B、数据的逻辑结构属于线性结构,存储结构属于非线性结构C、一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D、一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率标准答案:D知识点解析:数据的逻辑结构是指数据集合中各数据元素之间所固有的逻辑关系;数据的存储结构是在对数据进行处理时,各数据元素在计算机中的存储关系。数据的存储结构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构;而采用不同的存储结构,其数据处理的效率是不同的。9、下列描述中正确的是A、数据的逻辑结构与存储结构必定是一一对应的B、由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C、程序设计语言中的数据一般是顺序存储结构,因此,利用数组只能处理线性结构D、以上三种说法都不对标准答案:D知识点解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。10、下列叙述中正确的是A、有一个以上根结点的数据结构不一定是非线性结构B、只有一个根结点的数据结构不一定是线性结构C、循环链表是非线性结构D、双向链表是非线性结构标准答案:B知识点解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。11、下列数据结构中,属于非线性结构的是A、循环队列B、带链队列C、二叉树D、带链栈标准答案:C知识点解析:根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类:线性结构和非线性结构。循环队列、带链队列和带链栈都是线性结构,而二叉树是非线性结构。12、下列描述中正确的是A、线性链表是线性表的链式存储结构B、栈与队列是非线性结构C、双向链表是非线性结构D、只有根结点的二叉树是线性结构标准答案:A知识点解析:线性表的链式存储结构称为线性链表。线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域两个组成部分。各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一结点的指针HEAD称为头指针,当HEAD=NULL时称为空表。栈、队列和双向链表是线性结构,树是一种简单的非线性结构。在树这种数据结构中,所有数据元素的关系具有明显的层次特征。二叉树是非线性结构。线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。13、下面叙述中正确的是A、线性表是线性结构B、栈与队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构标准答案:A知识点解析:线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种。14、下列关于栈的叙述正确的是A、栈按“先进先出”组织数据B、栈按“先进后出"组织数据C、只能在栈底插入数据D、不能删除数据标准答案:B知识点解析:栈是限定在一端进行插入和删除的线性表,允许进行插入和删除元素的一端称为栈顶,另一端称为栈底。栈是按照“先进后出”的原则组织数据的。15、支持子程序调用的数据结构是A、栈B、树C、队列D、二叉树标准答案:A知识点解析:栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。16、下列数据结构中,能够按照“先进后出”原则存取数据的是A、循环队列B、栈C、队列D、二叉树标准答案:B知识点解析:栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据:队列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。17、下列关于栈叙述正确的是A、栈顶元素最先能被删除B、栈顶元素最后才能被删除C、栈底元素永远不能被删除D、以上三种说法都不对标准答案:A知识点解析:栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。18、下列关于栈的叙述中,正确的是A、栈底元素一定是最后入栈的元素B、栈顶元素一定是最先入栈的元素C、栈操作遵循先进后出的原则D、以上三种说法都不对标准答案:C知识点解析:栈是限定只能在表的_端进行插入和删除操作的线性表,必须按“后进先出”的规则操作元素。19、下列叙述中正确的是A、在栈中,栈中元素随栈底指针与栈项指针的变化而动态变化B、在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C、在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D、上述三种说法都不对标准答案:C知识点解析:在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈跟队列不同,元素只能在栈顶压入或弹出,栈底指针不变,栈中元素随栈顶指针的变化而动态变化。遵循后进先出的规则。20、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是A、12345ABCDEB、EDCBA54321C、ABCDEl2345D、54321EDCBA标准答案:B知识点解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是EDCBA5432l。21、一个栈的初始状态为空,现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是A、1,2,3,A,B,CB、C,B,A,1,2,3.C、C,B,A,3,2,1D、1,2,3,C,B,A标准答案:C知识点解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是CBA32l。22、下列关于栈的描述中错误的是A、栈是先进后出的线性表B、栈只能顺序存储C、栈具有记忆作用D、对栈的插入与删除操作中,不需要改变栈底指针标准答案:B知识点解析:栈是限定在一端进行插入与删除的线性表。栈顶(top):插入数据(即入栈)的一端:栈底(bottom):不能入栈也不能出栈的一端。栈存储数据的原则:“先进后出”或“后进先出”。栈的特性是具有记忆作用。23、按照“后进先出”原则组织数据的数据结构是A、队列B、栈C、双向链表D、二叉树标准答案:B知识点解析:栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。即栈是按照“后进先出”(LastInFirstOut,简称LIFO)或“先进后出”(FirstInLast’Out,简称FILO)的原则组织数据的。因此,栈也称为“后进先出表”或“先进后出”表。24、下列对队列的描述中正确的是A、队列属于非线性表B、队列按“先进后出”原则组织数据C、队列在队尾删除数据D、队列按“先进先出”原则组织数据标准答案:D知识点解析:队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾;允许删除的一端称为队头。在队列这种数据结构中,最先插入的元素将最先能够被删除;反之,最后插入的元素将最后才能被删除。因此,队列又称“先进先出”或“后进后出”的线性表。25、下列叙述中正确的是A、栈是一种先进先出的线性表B、队列是一种后进先出的线性表C、栈与队列都是非线性结构D、以上三种说法都不对标准答案:D知识点解析:栈是先进后出的线性表,队列是先进先出的线性表,二者均为线性结构。26、下列叙述中正确的是A、栈是“先进先出”的线性表B、队列是“先进后出”的线性表C、循环队列是非线性结构D、有序线性表既可以采用顺序存储结构,也可以采用链式存储结构标准答案:D知识点解析:本题主要考查了栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。27、下列关于栈的描述中正确的是A、在栈中只能插入元素而不能删除元素B、在栈中只能删除元素而不能插入元素C、栈是特殊的线性表,只能在一端插入或删除元素D、栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素标准答案:C知识点解析:栈是限定在一端进行插入与删除的线性表,在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。28、下列叙述中正确的是A、.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B、在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C、在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D、循环队列中元素的个数是由队头指针和队尾指针共同决定标准答案:D知识点解析:循环队列中元素的个数是由队头指针和队尾指针共同决定的,元素的动态变化也是通过队头指针和队尾指针来反映的。29、对于循环队列,下列叙述中正确的是A、队头指针是固定不变的B、队头指针一定大于队尾指针C、队头指针一定小于队尾指针D、队头指针可以大于队尾指针,也可以小于队尾指针标准答案:D知识点解析:所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置。循环队列的主要操作是:入队运算和退队运算。每进行一次入队运算,队尾指针就进一。每进行一次退队运算,队头指针就进一。当rear或front等于队列的长度加l时,就把rear或front值置为1。所以在循环队列中,队头指针可以大于队尾指针,也可以小于队尾指针。30、下列叙述中正确的是A、循环队列是队列的一种链式存储结构B、循环队列是队列的一种顺序存储结构C、循环队列是非线性结构D、循环队列是一种逻辑结构标准答案:B知识点解析:本题主要考查循环队列的概念,循环队列作为队列的一种也应该是线性结构。队列是一种逻辑结构,而循环队列是一种顺序存储结构的队列。31、设循环队列的存储空间为Q(1:35),初始状态为front=rear=35。现经过一系列入队与退队运算后,front=-15,rear=15,则循环队列中的元素个数为A、15B、16C、20D、0或35标准答案:D知识点解析:循环队列的队头指针和尾指针都等于15,此循环队列中元素的个数有两种情况,第一种情况是队头指针和尾指针都是第一次到达15,此时元素个数为0;第二种情况是队头指针第一次到达15,而尾指针第二次到达15,此时元素个数为35。32、在一个容量为15的循环队列中,若头指针front=6,尾指针rear=9,则循环队列中的元素个数为A、2B、3C、4D、5标准答案:B知识点解析:循环队列中,rear表示尾指针,front表示头指针,当有元素入队时,rear=rear+1,而元索出队的时候,front=front+1,当rear值大于front值时,队列中的元素个数为rear-front,当rear的值小于front时,列队中的元素个数为rear-front+m(m表示队列的容量)。33、下列叙述中正确的是A、栈是一种先进先出的线性表B、队列是一种后进先出的线性表C、栈与队列都是非线性结构D、栈与队列都是线性结构标准答案:D知识点解析:栈是先进后出,队列是先进先出。栈和队列都是一种线性表,属于线性结构。34、下列叙述中正确的是A、栈是“先进先出”的线性表B、队列是“先进后出"的线性表C、循环队列是非线性结构D、有序线性表既可以采用顺序存储结构,也可以采用链式存储结构标准答案:D知识点解析:栈是“先进后出”,队列“是先进先出”。栈和队列都是一种线性表,属于线性结构。有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。采用链式存储结构的线性表称之为线性链表。35、下列与队列结构有关联的是A、函数的递归调用B、数组元素的引用C、多重循环的执行D、先到先服务的作业调度标准答案:D知识点解析:队列中最先插入的元素将最先被删除,最后插入的元素将最后被删除。国家二级公共基础知识(数据结构与算法)模拟试卷第2套一、单项选择题(本题共23题,每题1.0分,共23分。)1、算法的有穷性是指()。A、算法程序的运行时间是有限的B、算法程序所处理的数据量是有限的C、算法程序的长度是有限的D、算法只能被有限的用户使用标准答案:A知识点解析:算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。2、下列叙述中正确的是()。A、算法就是程序B、设计算法时只需要考虑数据结构的设计C、设计算法时只需要考虑结果的可靠性D、以上三种说法都不对标准答案:D知识点解析:所谓算法是指解题方案的准确而完整的描述。是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。算法不等于程序,也不等于计算方法。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。3、算法的空间复杂度是指()。A、算法在执行过程中所需要的计算机存储空间B、算法所处理的数据量C、算法程序中的语句或指令条数D、算法在执行过程中所需要的临时工作单元数标准答案:A知识点解析:算法的空间复杂度是指执行这个算法所需要的内存空间。这个内存空间包括算法程序所占的空间,输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。4、算法的时间复杂度是指()。A、算法的执行时间B、算法所处理的数据量C、算法程序中的语句或指令条数D、算法在执行过程中所需要的基本运算次数标准答案:D知识点解析:算法的时间复杂度,是指执行算法所需要的计算工作量。算法的工作量可以用算法在执行过程中所需基本运算的执行次数来度量。5、下列叙述中正确的是()。A、算法的效率只与问题的规模有关,而与数据的存储结构无关B、算法的时间复杂度是指执行算法所需要的计算工作量C、数据的逻辑结构与存储结构是一一对应的D、算法的时间复杂度与空间复杂度一定相关标准答案:B知识点解析:算法的时间复杂度是指执行算法所需要的计算工作量。算法的工作量用算法所执行的基本运算的次数来度量,而算法所执行的基本运算次数是问题规模的函数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。算法的时间复杂度与空间复杂度并不相关。数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间的关系,是独立于计算机的:数据的存储结构是研究数据元素和数据元素之间的关系如何在计算机中表示,它们并非一一对应。算法的执行效率不仅与问厨的规模有关,还与数据的存储结构有关。6、下列叙述中正确的是()。A、一个算法的空间复杂度大,则其时间复杂度也必定大B、一个算法的空间复杂度大,则其时间复杂度必定小C、一个算法的时间复杂度大,则其空间复杂度必定小D、算法的时间复杂度与空间复杂度没有直接关系标准答案:D知识点解析:算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模:算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。7、数据的存储结构是指()。A、存储在外存中的数据B、数据所占的存储空间量C、数据在计算机中的顺序存储方式D、数据的逻辑结构在计算机中的表示标准答案:D知识点解析:在对数据进行处理时,各数据元素在计算机中的存储关系,即为数据的存储结构。8、下列描述中正确的是()。A、一个逻辑数据结构只能有一种存储结构B、数据的逻辑结构属于线性结构,存储结构属于非线性结构C、一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D、一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率标准答案:D知识点解析:数据的逻辑结构是指数据集合中各数据元素之间所固有的逻辑关系;数据的存储结构是在对数据进行处理时,各数据元素在计算机中的存储关系。数据的存储结构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构;而采用不同的存储结构,其数据处理的效率是不同的。9、下列描述中正确的是()。A、数据的逻辑结构与存储结构必定是一一对应的B、由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C、程序设计语言中的数据一般是顺序存储结构,因此,利用数组只能处理线性结构D、以上三种说法都不对标准答案:D知识点解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等。10、下列叙述中正确的是()。A、有一个以上根结点的数据结构不一定是非线性结构B、只有一个根结点的数据结构不一定是线性结构C、循环链表是非线性结构D、双向链表是非线性结构标准答案:B知识点解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。11、下列数据结构中,属于非线性结构的是()。A、循环队列B、带链队列C、二叉树D、带链栈标准答案:C知识点解析:根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类:线性结构和非线性结构。循环队列、带链队列和带链栈都是线性结构,而二叉树是非线性结构。12、下列描述中正确的是()。A、线性链表是线性表的链式存储结构B、栈与队列是非线性结构C、双向链表是非线性结构D、只有根结点的二叉树是线性结构标准答案:A知识点解析:线性表的链式存储结构称为线性链表。线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域两个组成部分。各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一结点的指针HEAD称为头指针,当HEAD=NULL时称为空表。栈、队列和双向链表是线性结构,树是一种简单的非线性结构。在树这种数据结构中,所有数据元素的关系具有明显的层次特征。二叉树是非线性结构。线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。13、下面叙述中正确的是()。A、线性表是线性结构B、栈与队列是非线性结构C、线性链表是非线性结构D、二叉树是线性结构标准答案:A知识点解析:线性表是最简单的、最常用的一种线性结构。所谓线性链表指的是采用链式存储结构的线性表。栈和队列其实是一种特殊的线性表。树是一种简单的非线性结构,二叉树是树的一种。14、下列关于栈的叙述正确的是()。A、栈按“先进先出”组织数据B、栈按“先进后出”组织数据C、只能在栈底插入数据D、不能删除数据标准答案:B知识点解析:栈是限定在一端进行插入和删除的线性表,允许进行插入和删除元素的一端称为栈顶,另一端称为栈底。栈是按照“先进后出”的原则组织数据的。15、支持子程序调用的数据结构是()。A、栈B、树C、队列D、二叉树标准答案:A知识点解析:栈是一种限定在一端进行插入与删除的线性表。在主函数调用子函数时,要首先保存主函数当前的状态,然后转去执行子函数,把子函数的运行结果返回到主函数调用子函数时的位置,主函数再接着往下执行,这种过程符合栈的特点。所以一般采用栈式存储方式。16、下列数据结构中,能够按照“先进后出”原则存取数据的是()。A、循环队列B、栈C、队列D、二叉树标准答案:B知识点解析:栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据;队列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。17、下列关于栈叙述正确的是()。A、栈顶元素最先能被删除B、栈顶元素最后才能被删除C、栈底元素永远不能被删除D、以上三种说法都不对标准答案:A知识点解析:栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。18、下列关于栈的叙述中,正确的是()。A、栈底元素一定是最后入栈的元素B、栈顶元素一定是最先入栈的元素C、栈操作遵循先进后出的原则D、以上三种说法都不对标准答案:C知识点解析:栈是限定只能在表的一端进行插入和删除操作的线性表,必须按“后进先出”的规则操作元素。19、下列叙述中正确的是()。A、在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B、在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C、在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D、上述三种说法都不对标准答案:C知识点解析:在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈跟队列不同,元素只能在栈顶压入或弹出,栈底指针不变,栈中元素随栈顶指针的变化而动态变化,遵循后进先出的规则。20、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是()。A、12345ABCDEB、EDCBA54321C、ABCDEl2345D、54321EDCBA标准答案:B知识点解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是EDCBA54321。21、一个栈的初始状态为空。现将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是()。A、1,2,3,A,B,CB、C,B,A,l,2,3C、C,B,A,3,2,1D、1,2,3,C,B,A标准答案:C知识点解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是CBA321。22、下列关于栈的描述中错误的是()。A、栈是先进后出的线性表B、栈只能顺序存储C、栈具有记忆作用D、对栈的插入与删除操作中,不需要改变栈底指针标准答案:B知识点解析:栈是限定在一端进行插入与删除的线性表。栈顶(top):插入数据(即入栈)的一端;栈底(bottom):不能入栈也不能出栈的一端。栈存储数据的原则:“先进后出”或“后进先出”。栈的特性是具有记忆作用。23、按照“后进先出”原则组织数据的数据结构是()。A、队列B、栈C、双向链表D、二叉树标准答案:B知识点解析:栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端称为栈项,不允许插入与删除的另一端称为栈底。栈项元素总是最后被插入的元素,也是最先被删除的元素;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。即栈是按照“后进先出”(LastInFirstOut,简称LIFO)或“先进后出”(FirstInLastOut,简称FILO)的原则组织数据的。因此,栈也称为“后进先出表”或“先进后出”表。国家二级公共基础知识(数据结构与算法)模拟试卷第3套一、单项选择题(本题共23题,每题1.0分,共23分。)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。6、某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)()。A、3B、4C、6D、7标准答案:D知识点解析:根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该二叉树为7层,每层只有一个结点。7、某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)()。A、3B、6C、8D、12标准答案:D知识点解析:根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该二叉树为12层,每层只有一个结点。8、设树T的深度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。则T中的叶子结点数为()。A、8B、7C、6D、5标准答案:B知识点解析:深度为m二叉树其总结点数为2m-1=24-1=15。总结点数减去度为1,2,3,4的结点个数就是叶子结点数。15-4-2-1.1=7。9、设一棵完全二叉树共有700个结点,则此二叉树中的叶子结点数为()。A、85B、120C、250D、350标准答案:D知识点解析:①具有n个结点的完全二叉树的深度为[long2n]+1,计算出该完全二叉树的深度为10。②设度为0的结点(即叶子结点)为n0,度为1的结点为n1,度为2的结点为n2,总结点数为n,深度为k。n=n1+n2+n0,由于n0=n2+1则n2=n0-1,故n=n1+n0-1+n0=n1+2n0-1。由于完全二叉树中度为l的结点数只有两种可能:0或1。③假设度为1的结点数为0即满二叉树,根据满二叉树的定义,其2m-1个结点,根据以上计算所得的深度10来计算,应有210-1=1024-1=1023个结点,显然与题目中700个结点不符。因此,度为1的结点数必然为1。故n=n1+2n0-1=1+2n0-1=2n0,则n0=n/2=700/2=350。10、在深度为7的满二叉树中,叶子结点的个数为()。A、32B、31C、64D、63标准答案:C知识点解析:所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。也就是在满二叉树中,每一层上的结点数都是最大结点数,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。对于深度为7的满二叉树,叶子结点所在的是第7层,一共有27-1=64个叶子结点。全部结点共27-1=127个。11、对下列二叉树进行前序遍历的结果是()。A、DYBEAFCZXB、YDEBFZXCAC、ABDYECFXZD、ABCDEFXYZ标准答案:C知识点解析:二叉树前序遍历的简单描述:若二叉树为空,则结束返回;否则:①访问根结点:②前序遍历左子树;⑤前序遍历右子树。可见,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结构可知前序遍历的结果是ABDYECFXZ。12、对如下二叉树进行后序遍历的结果为()。A、ABCDEFB、DBEAFCC、ABDECFD、DEBFCA标准答案:D知识点解析:所谓后序遍历是指在访问根据结点、遍历左子树与遍历右子树这三者巾,首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。其简单描述为:若二叉树为空,则结束返回;否则,先后序遍历左子树,然后后序遍历右子树,最后访问根结点。对于后序遍历,第一个访问的结点一定是最左下的结点,最后一个访问的结点一定是根结点,所以选项D为正确答案。13、对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为()。A、log2nB、n/2C、nD、n+1标准答案:C知识点解析:在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为n次。14、在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为()。A、63B、64C、6D、7标准答案:B知识点解析:顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。如果线性表中的第一个元素就是要查找的元素,则只需要做一次比较就查找成功:但如果要查找的元素是线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。15、下列叙述中正确的是()。A、对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(1og2n)D、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n.)标准答案:A知识点解析:本题主要考查的知识点为查找技术。顺序查找的使用情况:①线性表为无序表;②表采用链式存储结构。二分法查找只适用于顺序存储的有序表,并不适用于线性链表。16、在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)标准答案:C知识点解析:对于长度为n的有序线性表,在最坏情况下,二分法查找只需比较log2n次,而顺序查找需要比较n次。17、下列数据结构中,能用二分法进行查找的是()。A、顺序存储的有序线性表B、线性链表C、二叉链表D、有序线性链表标准答案:A知识点解析:二分法查找只适应于顺序存储的有序表。有序表是指线性表中的元素按值非递减排序(即从小到大,但允许相邻元素值相等)的表。18、冒泡排序在最坏情况下的比较次数是()。A、n(n+1)/2B、nlog2nC、n(n-1)/2D、n/2标准答案:C知识点解析:对n个结点的线性表采用冒泡排序,在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。19、对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为()。A、9B、10C、45D、90标准答案:C知识点解析:线性表的长度为n,最坏情况下冒泡排序需要比较的次数为n(n-1)/2。20、对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是()。A、冒泡排序为n/2B、冒泡排序为nC、快速排序为nD、快速排序为n(n-1)/2标准答案:D知识点解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。21、对长度为n的线性表作快速排序,在最坏情况下,比较次数为()。A、nB、n-1C、n(n-1)D、n(n-1)/2标准答案:D知识点解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。22、对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是()。A、快速排序B、冒泡排序C、直接插入排序D、堆排序标准答案:D知识点解析:各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序O(n1.5)、简单选择排序n(n-1)/2、堆排序O(nlog2n)。23、下列排序方法中,最坏情况下比较次数最少的是()。A、冒泡排序B、简单选择排序C、直接插入排序D、堆排序标准答案:D知识点解析:冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为:n(n-1)/2。而堆排序法在最坏的情况下需要比较的次数为O(nlog2n)。其中堆排序的比较次数最少。国家二级公共基础知识(数据结构与算法)模拟试卷第4套一、单项选择题(本题共34题,每题1.0分,共34分。)1、下列叙述中正确的是A、循环队列中的元素个数随队头指针与队尾指针的变化而动态变化B、循环队列中的元素个数随队头指针的变化而动态变化C、循环队列中的元素个数随队尾指针的变化而动态变化D、循环队列中的元素个数不会变化标准答案:A知识点解析:所谓循环结构就是将队列存储空间的最后一个位置绕到第一个位置上,形成逻辑上的环状空间,循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置,因此,队列中的元素数等于从队头指针front指向的后一个位置与队尾指针rear指向位置之间的元素数量。2、下列关于线性链表的叙述中,正确的是A、各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B、各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C、进行插入与删除时,不需要移动表中的元素D、以上都不正确标准答案:C知识点解析:线性表的链式存储结构称为线性链表.在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。3、下列叙述中正确的是A、线性表链式存储结构的存储空间一般要少于顺序存储结构B、线性表链式存储结构与顺序存储结构的存储空间都是连续的C、线性表链式存储结构的存储空间可以是连续的,也可以是不连续的D、以上都不正确标准答案:C知识点解析:线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。4、下列叙述中正确的是A、线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B、线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C、线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D、以上都不正确标准答案:B知识点解析:线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域:另~部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。5、下列叙述中正确的是A、线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B、线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C、线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D、上述三种说法都不对标准答案:B知识点解析:线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的,各数据元素在存储空间中是按逻辑顺序依次存放的。所以每个元素只存储其值就可以了,而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的值,称为数据域;另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要大一些。6、下列对于线性链表的描述中正确的是A、存储空间不一定连续,且各元素的存储顺序是任意的B、存储空间不一定连续,且前件元素一定存储在后件元素的前面C、存储空间必须连续,且前件元素一定存储在后件元素的前面D、存储空间必须连续,且各元素的存储顺序是任意的标准答案:A知识点解析:一般来说,在线性表的链式存储结构中,各数据结点的存储序号是不连续的,并且各结点在存储空间中的位置关系与逻辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针head称为头指针,当head:NULL(或0)时称为空表。7、下列叙述中正确的是A、顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B、顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C、顺序存储结构能存储有序表,链式存储结构不能存储有序表D、链式存储结构比顺序存储结构节省存储空间标准答案:A知识点解析:顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。而链式存储结构的存储空间不一定是连续的。8、下列链表中,其逻辑结构属于非线性结构的是A、二叉链表B、循环链表C、双向链表D、带链的栈标准答案:A知识点解析:二又链表作为树的存储结构。链表中结点的两个链域分别指向该结点的第一个孩子结点和下一个兄弟结点。9、下列叙述中正确的是A、有一个以上根结点的数据结构不一定是非线性结构B、只有一个根结点的数据结构不一定是线性结构C、循环链表是非线性结构D、双向链表是非线性结构标准答案:B知识点解析:在数据结构中,树这类的的数据结构只有一个根结点,但它不是线性结构。10、某系统总体结构图如下图所示:该系统总体结构图的深度是A、7B、6C、3D、2标准答案:C知识点解析:这个系统总体结构图是一棵树结构,在树结构中,根结点在第1层,同一层上所有子结点都在下一层,由系统总体结构图可知,这棵树共3层。在树结构中,树的最大层次称为树的深度。所以这棵树的深度为3。11、下列关于二叉树的叙述中,正确的是A、叶子结点总是比度为2的结点少一个B、叶子结点总是比度为2的结点多一个C、叶子结点数是度为2的结点数的两倍D、度为2的结点数是度为1的结点数的两倍标准答案:B知识点解析:由二叉树的性质可以知道在二叉树中叶子结点总是比度为2的结点多一个。12、某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为A、n+1B、n-1C、2nD、n/2标准答案:A知识点解析:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。所以该二叉树的叶子结点数等于n+1。13、某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A、10B、8C、6D、4标准答案:C知识点解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。14、一棵二叉树共有25个结点,其中5个是叶子结点,则度为l的结点数为A、16B、10C、6D、4标准答案:A知识点解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个,故此度为1的结点个数:总结点数一叶子节点数一度为2的节点数=25-5-4=16。15、一棵二叉树中共有80个叶子结点与70个度为1的结点,则该二叉树中的总结点数为A、219B、229C、230D、231标准答案:B知识点解析:根据二叉树的性质,在任意二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个,故总结点数=叶子节点数+度为2.的节点数+度为1的节点数=80+79+70=229。、16、一棵二叉树中共有70个叶子结点与80个度为1的结点,则该二叉树中的总结点数为A、219B、221C、229D、231标准答案:A知识点解析:在二叉树中,叶子结点个数为n0,则度为2的结点数n2=n0-1。本题中叶子结点的个数为70,所以度为2的结点个数为69,因而总结点数=叶子结点数+度为1的结点数+度为2的结点数=70+80+69=219。17、某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)A、3B、4C、6D、7标准答案:D知识点解析:根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该二叉树为7层,每层只有一个结点。18、某二叉树共有12个结点,其中叶子结点只有1个。则该二叉树的深度为(根结点在第1层)A、3B、6C、8D、12标准答案:D知识点解析:根据二叉树的性质,度为0的结点(即叶子结点)总是比度为2的结点多一个。题目中的二叉树的叶子结点为1,因此度为2的结点的数目为0,故该二叉树为12层,每层只有一个结点。19、设树T的深度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。则T中的叶子结点数为A、8B、7C、6D、5标准答案:B知识点解析:深度为m二叉树其总结点数为2m-1=24-1=15。总结点数减去度为1,2,3,4的结点个数就是叶子结点数。15-4-2-1-1=7。20、设一棵完全二叉树共有700个结点,则此二叉树中的叶子结点数为A、85B、120C、250D、350标准答案:D知识点解析:①具有n个结点的完全二叉树的深度为[long2n]+1,计算出该完全二叉树的深度为10。②设度为0的结点(即叶子结点)为n0,度为1的结点为n1,度为2的结点为n2,总结点数为n,深度为k。n=n1+n2+n0,由于n0=n2+1则n2=n0-1,故n=n1+n0-1+n0=n1+2n0-1。由于完全二叉树中度为1的结点数只有两种可能:0或1。③假设度为1的结点数为0即满二叉树,根据满二叉树的定义,其2m-1个结点,根据以上计算所得的深度10来计算,应有210-1=1024-1=1023个结点,显然与题目中700个结点不符。因此,度为1的结点数必然为1。故n=n1+2n0-1=1+2n0.1=2n0,则n0=n/2=700/2=350。21、在深度为7的满二叉树中,叶子结点的个数为A、32B、31C、64D、63标准答案:C知识点解析:所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。也就是在满二叉树中,每一层上的结点数都是最大结点数,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。对于深度为7的满二叉树,叶子结点所在的是第7层,一共有27-1=64个叶子结点。全部结点共27-1=127个。22、对下列二叉树进行前序遍历的结果是A、DYBEAFCZXB、YDEBFZXCAC、ABDYECFXZD、ABCDEFXYZ标准答案:C知识点解析:二叉树前序遍历的简单描述:若二叉树为空,则结束返回;否则:①访问根结点;②前序遍历左子树;③前序遍历右子树。可见,前序遍历二叉树的过程是一个递归的过程。根据题目中给出的二叉树的结构可知前序遍历的结果是ABDYECFXZ。23、对如下二叉树进行后序遍历的结果为A、ABCDEFB、DBEAFCC、ABDECFD、DEBFCA标准答案:D知识点解析:所谓后序遍历是指在访问根据结点、遍历左子树与遍历右子树这三者中,首先遍历左予树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根点。因此,后序遍历二叉树的过程也是一个递归过程。其简单描述为:若二叉树为空,则结束返回;否则,先后序遍历左子树,然后后序遍历右子树,最后访问根结点。对于后序遍历,第一个访问的结点一定是最左下的结点,最后一个访问的结点一定是根结点,所以选项D为正确答案。24、对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为A、log2nB、n/2C、nD、n+1标准答案:C知识点解析:在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为n次。25、在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A、63B、64C、6D、7标准答案:B知识点解析:顺序查找又称顺序搜索。顺序查找一般是指在线性表中查找指定的元素,其基本方法是:从线性表的第一元素开始,依次将线性表中的元素与被查找的元素进行比较,若相等则表示找到(即查找成功),若线性表中所有元素都与被查元素进行了比较但都不相等,则表示线性表中没有要找的元素(即查找失败)。如果线性表中的第一个元素就是要查找的元素,则只需要做一次比较就查找成功;但如果要查找的元素是线性表中的最后一个元素,或者要查找元素不在线性表中,则需要与线性表中所有元素进行比较,这是顺序查找的最坏情况,比较次数为线性表的长度。26、下列叙述中正确的是A、对长度为n的有序链表进行查找,最坏情况下需要的比较次数为nB、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D、对长度为n的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)标准答案:A知识点解析:本题主要考查的知识点为查找技术。顺序查找的使用情况:①线性表为无序表;②表采用链式存储结构。二分法查找只适用于顺序存储的有序表,并不适用于线性链表。27、在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是A、O(n)B、O(n2)C、O(log2n)D、O(nlog2n)标准答案:C知识点解析:对于长度为n的有序线性表,在最坏情况下,二分法查找只需比较log2n次,而顺序查找需要比较n次。28、下列数据结构中,能用二分法进行查找的是A、顺序存储的有序线性表B、线性链表C、二叉链表D、有序线性链表标准答案:A知识点解析:二分法查找只适应于顺序存储的有序表。有序表是指线性表中的元素按值非递减排序(即从小到大,但允许相邻元素值相等)的表。29、冒泡排序在最坏情况下的比较次数是A、n(n+1)/2B、nlog2nC、n(n-1)/2D、n/2标准答案:C知识点解析:对n个结点的线性表采用冒泡排序,在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。30、对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为A、9B、10C、45D、90标准答案:C知识点解析:线性表的长度为n,最坏情况下冒泡排序需要比较的次数为n(n-1)/2。31、对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是A、冒泡排序为n/2B、冒泡排序为nC、快速排序为nD、快速排序为n(n-1)/2标准答案:D知识点解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,。称为快速排序法。32、对长度为n的线性表作快速排序,在最坏情况下,比较次数为A、nB、n-1C、n(n-1)D、n(n-1)/2标准答案:D知识点解析:假设线性表的长度为n,则在最坏情况下,冒泡排序需要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描,需要的比较次数为n(n-1)/2。快速排序法也是一种互换类的排序方法,但由于它比冒泡排序法的速度快,因此,称为快速排序法。33、对长度为n的线性表排序,在最坏情况下,比较次数不是n(n一1)/2的排序方法是A、快速排序B、冒泡排序C、直接插入排序D、堆排序标准答案:D知识点解析:各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序n(n-1)/2、快速排序n(n-1)/2、简单插入排序n(n-1)/2、希尔排序O(n1.5)、简单选择排序n(n-1)/2、堆排序o(nlog2n)。34、下列排序方法中,最坏情况下比较次数最少的是A、冒泡排序B、简单选择排序C、直接插入排序D、堆排序标准答案:D知识点解析:冒泡排序、简单选择排序和直接插入排序法在最坏的情况下比较次数为:n(n-1)/2。而堆排序法在最坏的情况下需要比较的次数为O(nlog2n)。其中堆排序的比较次数最少。国家二级公共基础知识(数据结构与算法)模拟试卷第5套一、单项选择题(本题共28题,每题1.0分,共28分。)1、下列结构中属于线性结构链式存储的是A、双向链表B、循环队列C、二叉链表D、二维数组标准答案:A知识点解析:数据元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和链式存储结构。数据的存储结构是指数据的逻辑结构在计算机中的表示。双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱,它的存储方式是线性结构链式。循环队列、二叉链表和二维数组都是顺序存储结构。2、下列叙述中错误的是A、循环链表中有一个表头结点B、循环链表的存储空间是连续的C、循环链表实现了空表与非空表运算的统一D、循环链表的表头指针与循环链表中最后一个结点的指针均指向表头结点标准答案:B知识点解析:循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。循环链表的结点是指针指向,他不一定要是连续的存储空间,也可以是断开的空间。3、度为3的一棵树共有30个结点,其中度为3、1的结点个数分别为3、4。则该树中的叶子结点数为A、14B、15C、16D、不可能有这样的树标准答案:B知识点解析:根据题目可知本树中还有度为2的结点。树的总结点=(度1*个数+度2*个数…)+1,这里我们设度为2的结点数为x,那么30=3*3+2*x+1*4+1=2*x+14,由此可计算出x=8。树的叶子结点数等于总结点减去所有度不为0的结点,也就是30-3-8-4=15。4、在长度为97的顺序有序表中作二分查找,最多需要的比较次数为A、7B、96C、48D、6标准答案:A知识点解析:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。最多比较次数的计算方式:k=log2n。其中n代表长度,k为比较次数。本题中可以讦算出k=7。5、下列结构中属于非线性结构的是A、二叉链表B、二维数组C、循环队列D、双向链表标准答案:B知识点解析:线性结构是一个有序数据元素的集合。常用的线性结构有:线性表,栈,队列,双队列,数组,串;常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。循环队列、双向链表和二叉链表都是线性结构,而二维数组是非线性结构。6、从表中任何一个结点位置出发就可以不重复地访问到表中其他所有结点的链表是A、循环链表B、双向链表C、单向链表D、二叉链表标准答案:A知识点解析:循环链表是另一种形式的链式存贮结陶。它的特点是表中最后一个结点的指针域指向头结点,整个链表嘭成一个环,循环一圈就访问到了表中其他所有结点而不重复。7、设二叉树的前序序列与中序序列均为ABCDEFGH,则该二叉树的后序序列为A、HGFEDCBAB、ABCDEFGHC、ABCDHGFED、DCBAHGFE标准答案:A知识点解析:前序遍历(DLR)是二叉树遍历的一种,也叫做先根遍历、先序遍历、前序周游,可记做根左右;中序遍历(LDR)是二叉树遍历的一种,也叫做中根遍历、中序周游,可记做左根右;后序遍历(LRD)是二叉树遍历的一种,也叫做后根遍历、后序周游,可记做左右根。根据题中前序和中序序列均为ABCDEFGH,可画出二叉树,该二叉树是一个子结点全部在右侧二叉树,然后根据后序遍历方法,可得出后序遍历为HGFEDCBA。8、设某棵树的度为3,其中度为3、1、0的结点个数分别为3、4、15。则该树中总结点数为A、22B、30C、35D、不可能有这样的树标准答案:B知识点解析:本题采用画图法来求出结果。首先先画出包含3个度为3的结点:然后再添加4个度为1的结点,此时最大度为0的结点数为8。根据题目中描述的度为0的结点数有15个,这时要在书中添加度为2的结点,直到度为0的结点数位15。画图结束后,不管是什么样的树,总结点数都是30。9、下列叙述中正确的是A、矩阵是非线性结构B、数组是长度固定的线性表C、对线性表只能作插入与删除运算D、线性表中各元素的数据类型可以不同标准答案:B知识点解析:所谓数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。10、在快速排序法中,每经过一次数据交换(或移动)后A、能消除多个逆序B、只能消除一个逆序C、不会产生新的逆序D、消除的逆序个数一定比新产生的逆序个数多标准答案:A知识点解析:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。11、线性表的长度为n。在最坏情况下,比较次数为n-1的算法是A、顺序查找B、有序表的插入C、寻找最大项D、同时寻找最大项与最小项标准答案:C知识点解析:寻找最大项算法是,首先取出第一个数作为最大数,然后和后面的所有项进行比较查找。因此,比较次数为n-1。12、设某棵树的度为3,其中度为2、1、0的结点个数分别为3、4、15。则该树中总结点数为A、22B、30C、35D、不可能有这样的树标准答案:D知识点解析:本题采用画图法来求出结果。首先先画出包含3个度为2的结点;然后再添加4个度为1的结点。根据题目中描述的度为0的结点数有15个,这时要在书中添加度为3的结点,不管怎么添加都不能添加出15个度为0的结点,因此不可能有这样的树。13、下列叙述中错误的是A、向量是线性结构B、非空线性结构中只有一个结点没有前件C、非空线性结构中只有一个结点没有后件D、只有一个根结点和一个叶子结点的结构必定是线性结构标准答案:D知识点解析:线性结构是n个数据元素的有序(次序)集合。①集合中必存在唯一的一个“第一个元素”;②集合中必存在唯一的一个“最后的元素”;③除最后元素之外,其它数据元素均有唯一的“后件”;④除第一元素之外,其它数据元素均有唯一的“前件”。相对应于线性结构,非线性结构的逻辑特征是一个结点元素可能对应多个直接前驱和多个后继。向量符合线性结构特点。非线性结构也会存在只有一个根结点和叶子结点的情况。14、在希尔排序法中,每经过一次数据交换后A、能消除多个逆序B、只能消除一个逆序C、不会产生新的逆序D、消除的逆序个数一定比新产生的逆序个数多标准答案:A知识点解析:希尔排序法(缩小增量法)属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序的方法。插入排序能够消除多个逆序,也会产生新的逆序。消除的逆序与新产生的逆序有多有少。15、设二叉树的后序序列与中序序列均为ABCDEFGH,则该二叉树的前序序列为A、HGFEDCBAB、ABCDEFGHC、ABCDHGFED、DCBAHGFE标准答案:A知识点解析:后序遍历中,最后一个字母是根结点,也就是H是根结点;在中序遍历中,根结点前面的是左子树、后面的是右子树,H后面没有,因此该树没有右子树。同理,可判断出该树是第一个完全的左子树。由此可画出这个二叉树,然后根据二叉树可的前序序列为HGFEDCBA。16、T列叙述中正确的是A、循环队列是队列的链式存储结构B、能采用顺序存储的必定是线性结构C、所有的线性结构都可以采用顺序存储结构D、具有两个以上指针的链表必定是非线性结构标准答案:C知识点解析:根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。所有的线性结构都可以采用顺序存储结构。17、下列叙述中正确的是A、算法的复杂度是指算法所处理的数据量B、算法的复杂度是指算法程序中指令的数量C、算法的复杂度是指算法控制结构的复杂程度D、算法的复杂度包括时间复杂度与空间复杂度标准答案:D知识点解析:算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。18、设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。则按层次输出(从上到下,同一层从左到右)的序列为A、ABCDEFGHIJB、DGHEBIJFCAC、JIHGFEDCBAD、GHIJDEFBCA标准答案:A知识点解析:前序遍历中,第一个字母是根结点,也就是A是根结点;在中序遍历中,根结点前面的是左子树、后面的是右子树。前序中,B在A的后面,中序中在左子树中,可知B为A的左结点。中序中D在B的前面,前序中在B的后面,可知D为B的左结点,GEH为B的右子树。前序中顺序为EGH,由此可知,E为B的右结点,G为E的左结点、H为E的右结点。右子树中,前序中C在最前,因为右子树根结点,也就是A的右结点,根据前序中的子树FU和中序中的IFJ子树可知F为C的右结点,I为F的左结点、J为F的右结点。由此可画出这个二叉树,然后根据二叉树,可知按层次输出(从上到下,同一层从左到右)的序列为:ABCDEFGHU。19、设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列正常的操作后,front-=rear。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为A、0B、1C、48D、49标准答案:C知识点解析:front指定队头位置,删除一个元素就将front顺时针移动一位;rear指尾指针,指向元素要插入的位置,插入一个元素就将rear顺时针移动一位:操作后,循环队列的队头指针-1等于尾指针,说明出队一位,那么总数就是49了。在该队列中寻找最大值元素,最多比较次数是总数-1,因此是49—1=48次。20、设顺序表的长度为40,对该表进行冒泡排序。在最坏情况下需要的比较次数为A、780B、820C、40D、41标准答案:A知识点解析:冒泡排序(BubbleSort),是一种计算机科学领域的较简单的排序算法。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个;对每一对相邻元素作同样的工作,从开始第一一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数;针对所有的元素重复以上的步骤,除了最后一个:持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。冒泡排序的最坏时间复杂度为(n*(n—1))/2=780。21、设表的长度为n。在下列算法中,最坏情况下时间复杂度最高的是A、堆排序B、希尔排序C、有序链表查找D、循环链表中寻找最大项标准答案:B知识点解析:希尔排序(ShellSort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。排序方法最坏时间复杂度:直接插入为O(n2)、简单选择为O(n2)、起泡排序为O(n2)、快速排序为O(n2)、堆排序为O(nlog2n)、归并排序为O(nlog2n)。22、设循环队列的存储空间为Q(1:50),初始状态为front=rear=50。经过一系列正常的操作后,front=rear-1。为了在该队列中寻找值最大的元素,在最坏情况下需要的比较次数为A、0B、1C、49D、50标准答案:A知识点解析:front指定队头位置,删除一个元素就将front顺时针移动一位;rear指尾指针,指向元素要插入的位置,插入一个元素就将。rear顺时针移动一位:操作后,循环队列的队头指针等于尾指针-1,说明此时队列已经是空队列,那么就不用比较了。23、设二叉树的前序序列为ABDEGHCFIJ,中序序列为DBGEHACIFJ。则后序序列为A、DGHEBIJFCAB、JIHGFEDCBAC、GHIJDEFBCAD、ABCDEFGHIJ标准答案:A知识点解析:前序遍历中,第一个字母是根结点,也就是A是根结点;在中序遍历中,根结点前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论