计算机二级Ms-office-第一部分-公共基础知识——数据结构与算法
- 格式:docx
- 大小:34.59 KB
- 文档页数:11
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
公共基础知识第一章数据结构与算法1.1 算法1.1.1 算法的基本概念1、算法的基本特征可行性、确定性、有穷性、拥有足够的情报所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
2、算法的基本要素(1)算法中对数据的运算和操作在一般的计算机系统中,基本的运算和操作:算术运算、逻辑运算、关系运算、数据传输(2)算法的控制结构描述算法的工具:传统流程图、N-S结构化流程图、算法描述语言等一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成3、算法设计基本方法列举法、归纳法、递推(本质上也属于归纳法,递推关系式往往是归纳的结果)、递归(基础也是归纳,分为直接递归和间接递归两种)、减半递推技术、回溯法(“试”)1.1.2 算法复杂度1、算法的时间复杂度(执行算法所需要的计算工作量)算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数算法的工作量=f(n),n是问题的规模两个n阶矩阵相乘所需要的基本运算(即两个实数的乘法)次数为n3,即计算工作量为n3,也就是时间复杂度为n3对于一个固定的规模,算法所执行的基本运算次数还可能与特定的输入有关——可以用两种方法来分析算法的工作量:平均性态、最坏情况复杂性2、算法的空间复杂度(执行这个算法所需要的内存空间)如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的1.2 数据结构的基本概念数据结构主要有三个方面的问题:●数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构●在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构●对各种数据结构进行的运算提高数据处理的效率,主要包括两个方面:●提高数据处理的速度●尽量节省在数据处理过程中所占用的计算机存储空间1.2.1 什么是数据结构无序表,只能用顺序查找对分查找只适用于有序表(在词典中查单词的方法类似于对分查找)数据结构是指相互有关联的数据元素的集合(向量、矩阵、图书馆中的图书卡片目录……)在数据处理领域中,通常把数据元素之间这种固有的关系简单地用前后件关系(直接前驱与直接后继关系)来描述,前后件关系所表示的实际意义随具体对象的不同而不同1、数据的逻辑结构一个数据结构应包含以下两方面的信息:●表示数据元素的信息●表示各数据元素之间的前后件关系(数据元素之间的前后件关系是指它们的逻辑关系,而与它们在计算机中的存储位置无关)一个数据结构可以表示成:B=(D,R)D为数据元素的集合,R为D中各数据元素之间的前后件关系(一般用二元组来表示)a与b是D中的两个数据,则二元组(a,b)表示a是b的前件,b是a的后件2、数据的存储结构各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般也不可能相同一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构1.2.2 数据结构的图形表示在数据结构中,没有前件的结点称为根结点,没有后件的结点称为终端结点(叶子结点)数据结构中除了根结点与终端结点外的其他结点一般称为内部结点在对数据结构的处理过程中,不仅数据结构中的结点(即数据元素)个数在动态地变化,而且,各数据元素之间的关系也有可能在动态地变化1.2.3 线性结构与非线性结构根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构和非线性结构如果一个非空的数据结构满足两个条件:●有且只有一个根结点●每一个结点最多有一个前件,也最多有一个后件则称该数据结构为线性结构。
全国计算机等级考试培训教材(二级MS Office公共基础部分)山东农业大学计算中心第1章数据结构与算法 31.1 算法的复杂度 31.2 数据结构 31.3 栈 41.4 队列 41.5 链表 51.6 二叉树 61.7 查找 71.8 排序 8第2章程序设计基础 82.1 程序设计的方法与风格 82.2 结构化程序设计 92.3 面向对象方法 9第3章软件工程基础 103.1 软件工程基本概念 103.2 软件生命周期 103.3 软件设计 113.4 结构化分析方法 123.5 软件测试 133.6 程序的调试 14第4章数据库设计基础 144.1 数据库的基本概念 144.2 数据库系统的发展和基本特点 15 4.3 数据库系统的内部体系结构 15 4.4 数据模型的基本概念 164.5 E-R模型 164.6 关系模型 164.7 关系代数 174.8 数据库设计与原理 18第1章数据结构与算法1.1 算法的复杂度1. 算法的基本概念利用计算机算法为计算机解题的过程实际上是在实施某种算法。
(1)算法的基本特征算法一般具有4个基本特征:可行性、确定性、有穷性、拥有足够的情报。
(2)算法的基本运算和操作算法的基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
(3)算法的3种基本控制结构算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
(4)算法基本设计方法算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。
(5)指令系统所谓指令系统指的是一个计算机系统能执行的所有指令的集合。
2. 算法复杂度算法复杂度包括时间复杂度和空间复杂度。
注意两者的区别,无混淆,见表1-1。
表1-1 算法复杂性1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
第一章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
二级公共基础知识总结第一章数据结构与算法1.1 算法算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计.算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构.指令系统:一个计算机系统能执行的所有指令的集合。
.算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本基本概念数据结构研究的三个方面:(1)(2(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
非空线性表的结构特征:(1)且只有一个根结点a1,它无前件;(2)有且只有一个终端结点an,它无后件;(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
结点个数nn=0线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素的所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的.ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数.顺序表的运算:插入、删除。
(详见14-—16页)top表示栈顶位置,用bottom 表示栈底。
栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一循环队列:s=0表示队列空,s=1且front=rear表示队列满在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
第一章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
第一部分公共基础知识第1章数据结构与算法1.1算法1.算法的基本概念(1)概念:算法是指一系列解决问题的清晰指令。
(2)4个基本特征:可行性、确定性、有穷性、拥有足够的情报。
(3)两种基本要素:对数据对象的运算和操作、算法的控制结构(运算和操作时问的顺序)。
(4)设计的基本方法:列举法、归纳法、递推法、递归法、减半递推技术和回溯法。
2.算法的复杂度(1)算法的时间复杂度:执行算法所需要的计算工作量。
(2)算法的空间复杂度:执行算法所需的内存空间。
1.2数据结构的基本概念数据结构指相互有关联的数据元素的集合,即数据的组织形式。
其中逻辑结构反映数据元素之间逻辑关系;存储结构为数据的逻辑结构在计算机存储空间中的存放形式,有顺序存储、链式存储、索引存储和散列存储4种方式。
数据结构按各元素之间前后件关系的复杂度可划分为:(1)线性结构:有且只有一个根节点,且每个节点最多有一个直接前驱和一个直接后继的非空数据结构。
(2)非线性结构:不满足线性结构的数据结构。
1.3线性表及其顺序存储结构1.线性表的基本概念线性结构又称线性表,线性表是最简单也是最常用的一种数据结构。
2.线性表的顺序存储结构•元素所占的存储空间必须连续。
•元素在存储空间的位置是按逻辑顺序存放的。
3.线性表的插入运算在第i个元素之前插入一个新元素的步骤如下:步骤一:把原来第n个节点至第i个节点依次往后移一个元素位置。
步骤二:把新节点放在第i个位置上。
步骤三:修正线性表的节点个数。
在最坏情况下,即插入元素在第一个位置,线性表中所有元素均需要移动。
4.线性表的删除运算删除第i个位置的元素的步骤如下:步骤一:把第i个元素之后不包括第i个元素的n-i个元素依次前移一个位置;步骤二:修正线性表的结点个数。
1.4栈和队列1.栈及其基本运算(1)基本概念:栈是一种特殊的线性表,其插入运算与删除运算都只在线性表的一端进行,也被称为“先进后出”表或“后进先出”表。
考点:1.算法(****)2.数据结构(***)3.线性表及其顺序存储结构(**)4.栈和队列(*****)5.线性链表(**)6.树与二叉树(*****)7.查找技术(****)8.排序技术(***)1、概念算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作2、数据的逻辑结构●线性结构(例:一维数组、链表、栈、队列、串、线性表)●非线性结构(例:多维数组、广义表、树、图)3、数据的存储结构(线性表)●顺序存储方法:线性表中所有元素所占的存储空间是连续的;线性表中各数据元素在存储空间中是按逻辑顺序依次存放的●链接存储方法:逻辑上相邻的结点,物理上也相邻,存储单元可以是连续的,也可以是不连续的●计算机中有数据进行处理时,数据的存储结构对程序的执行效率有很大的关系●一种数据的逻辑结构根据需要可以表示成多种存储结构。
数组是数据的逻辑结构,可以用多种存储结构来表示●线性链表:就是指线性表的链式存储结构,简称链表4、算法的基本特征●可行性:针对实际问题而设计的算法,执行后能够得到满意的结果●确定性:算法中的每一个步骤都必须有明确的定义,不允许出现歧义性●有穷性:算法必须在有限时间内做完,即必须在执行有限个步骤之后终止,算法程序的运行时间是有限的●拥有足够的情报:要使算法有效必需为算法提供足够的情报当算法拥有足够的情报时,此算法才最有效的;而当提供的情报不够时,算法可能无效5、算法的复杂度●时间复杂度:该算法执行的时间耗费,是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数●空间复杂度:该算法执行时所耗费的存储空间6、顺序表和链表的比较:基于空间的考虑:(1)顺序表的存储空间是静态分配的,而链表的存储空间是动态分配的。
(2)顺序表占的存储空间必须是连续的,而链表占的存储空间可以是连续的,也可是不连续的●栈实际也是线性表,只不过是一种特殊的线性表。
栈称为“先进后出”表或“后进先出”表,顺序存储、链式存储●栈的计算:求栈中元素的个数:栈底元素—栈顶元素栈顶入栈出栈● 栈是限定在一端进行插入与删除的线性表,允许插入元素的一端为栈顶,允许删除元素的一端为栈底,栈顶元素总是最后被插入的元素,也是最先被删除的元素;栈底元素则总是最先被插入而最后被删除的元素● 队列也是一种运算受限的线性表,是一种“先进先出”,“后进后出”的线性表, 顺序存储、链式存储● 队列的计算:求队列中元素的个数:当rear>front 时, rear —front 当rear<front 时,rear-front+m m(代表队列的容量)● 循环队列仍然是顺序存储结构,是队列常采用的形式 ● 队列是一种线性表,它允许在一端进行插入,在另一端进行删除1、树● 节点:树中的每一个点叫做节点,分为根节点(0或1个)、父节点、子节点● 度:一个结点拥有的子树数称为该结点的度。
计算机二级Msoffice第一部分公共基础知识——数据结构与算法1.下列叙述中正确的是()。
()A、算法的复杂度与问题的规模无关B、算法的优化主要通过程序的编制技巧来实现C、对数据进行压缩存储会降低算法的空间复杂度(正确答案)D、数值型算法只需考虑计算结果的可靠性答案解析:参考解析:为了降低算法的空间复杂度,主要应减少输入数据所占的存储空间以及额外空间,通常采用压缩存储技术,C选项叙述正确。
算法的计算工作量是用算法所执行的基本运算次数来度量的,而算法所执行的基本运算次数是问题规模(通常用整数)表示的函数,A选项叙述错误。
算法的复杂度与程序的编制无关,B选项叙述错误。
算法需要考虑可行性、确定性、有穷性等,D选项叙述错误。
2.设有一个栈与一个队列的初始状态均为空。
现有一个序列A,B,C,D,E,F,G,H。
先分别将序列中的前4个元素依次入栈,后4个元素依次入队;然后分别将栈中的元素依次退栈,再将队列中的元素依次退队。
最后得到的序列为()。
()A、A,B,C,D,E,F,G,HB、A,B,C,D,H,G,F,EC、D,C,B,A,H,G,F,ED、D,C,B,A,E,F,G,H(正确答案)答案解析:参考解析:栈按先进后出的原则组织数据,所以入栈最早的元素最后出栈。
队列按先进先出的原则组织数据,所以入队最早的元素最先退队。
入栈的顺序为A,B,C,D,则退栈的顺序为D,C,B,A;入队的顺序为E,F,G,H,退队的顺序为E,F,G,H。
3.设某棵树的度为3,其中度为3,2,1的结点个数分别为3,0,4。
则该树中的叶子结点数为()。
()A、6B、7(正确答案)C、8D、不可能有这样的树答案解析:参考解析:假设叶子结点个数为n。
这棵树的总结点数为度为3的结点数+度为2的结点数+度为1的结点数+度为0的结点数,即为3+0+4+n。
再根据树的性质:树的总的结点数为树中所有结点的度数之和再加1,则总结点数为3x3+2x0+1x4+0xn+1。
3x3+1x4+1-3+4+n,则n=7,叶子结点数为7。
4.下列叙述中正确的是()。
()A、循环队列是队列的一种顺序存储结构(正确答案)B、循环队列是队列的一种链式存储结构C、循环队列中的队尾指针一定大于队头指针D、循环队列中的队尾指针一定小于队头指针答案解析:参考解析:循环队列是队列的一种顺序存储结构,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。
因此,从排头指针front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。
在循环队列中队头指针可以大于队尾指针,也可以小于队尾指针。
5.设栈与队列初始状态为空。
将元素A,B,C,D,E,F,G,H依次轮流入栈和入队,然后依次轮流出栈和退队,则输出序列为()。
()A、A,B,C,D,H,G,F,EB、B,G,D,E,F,C,H,AC、D,C,B,A,E,F,G,HD、G,B,E,D,C,F,A,H(正确答案)答案解析:参考解析:栈按先进后出的原则组织数据,所以入栈最早的元素最后出栈;队列按先进先出的原则组织数据,所以入队最早的元素最先退队。
将元素A,B,C,D,E,F,G,H依次轮流入栈和入队,则入栈的顺序为A,C,E,G,入队的顺序为B,D,F,H,然后依次轮流出栈和退队,则G先出栈,然后B退队,出栈的顺序为G,E,C,A,退队的顺序为B,D,F,H,输出顺序为G,B,E,D,C,F,A,H。
6.设二叉树的前序序列为ABDEGHCFI,中序序列为DBGEHACIFJ。
则按层次输出(从上到下,同一层从左到右)的序列为()。
()A、ABCDEFGHIJ(正确答案)B、DGHEBUFCAC、JIHGFEDCBAD、GHIUDEFBCA答案解析:参考解析:二叉树遍历可以分为3种:前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。
本题中二叉树的前序序列为ABDEGHCFIJ,可确定根结点为A,按层次输出(从上到下,同一层从左到右)时访问的第一个结点也应该是A,所以可排除B、C、D三项。
7.下列叙述中错误的是()。
()A、循环链表中有一个表头结点B、循环链表的存储空间是连续的(正确答案)C、循环链表的表头指针与循环链表中最后一个结点的指针均指向表头结点D、循环链表实现了空表与非空表运算的统一答案解析:参考解析:线性表链式存储结构的特点是,用一组不连续的存储单元存储线性表中的各个元素。
线性链表的存储单元是任意的,即各数据结点的存储序号可以是连续的,也可以是不连续的。
循环链表采用链式存储结构,因此存储空间也可以是不连续的。
8.设栈的存储空间为S(1:50),初始状态为top=51。
现经过-系列正常的入栈与退栈操作后,top=50,则栈中的元素个数为()。
()A、0B、1(正确答案)C、50D、49答案解析:参考解析:栈的存储空间为S(1:50),初始状态为top=51,即栈的初始状态为空。
当第一个元素进栈后,top=50,第二个元素进栈后,top=49,第三个元素进栈后,top=48,以此类推;若第三个元素出栈后,top=48,第二个元素出栈后,top=50。
即每进栈一个元素,top-1;每出栈一个元素,top+1。
当top=50时,栈中只有一个元素。
9.某二叉树共有399个结点,其中有199个度为2的结点,则该二叉树中的叶子结点数为()。
()A、不存在这样的二叉树B、198C、199D、200(正确答案)答案解析:参考解析:根据二叉树的性质:对任何一棵二叉树,度为的结点(即叶子结点)总是比度为2的结点多一个。
本题中,度为2的结点个数为199,则叶子结点数为199+1=200。
199+200=399,即这棵二叉树中只存在度为0和度为2的结点,不存在度为1的结点。
10.在长度为的有序链表中进行查找,最坏情况下需要比较的次数为()。
()A、n-1B、n/2C、n(正确答案)D、与有序顺序表的对分查找相同答案解析:参考解析:最坏情况为:查找的元素为表中最后一个元素或查找的元素不在表中,则需要比较表中所有元素,所以最坏情况下需要比较次数为n。
11.循环队列的存储空间为Q(1:50)。
经过一系列正常的入队与退队操作后,front=rear=25。
后又成功地将一个元素入队,此时队列中的元素个数为()。
()A、1(正确答案)B、50C、26D、2答案解析:参考解析:设循环队列的存储空间为Q(1:m),当front=rear=m时,循环队列为空;当front=rear且不等于m时,循环队列可能为空,也可能为满。
当为空时,可以插入元素;当为满时,插入元素会发生“上溢”错误。
题目中已经说明“成功地将一个元素入队”,说明之前循环队列的状态为空,插入一个元素后,队列中共有1个元素。
12.设二叉树的前序列为ABCDEF,中序序列为ABCDEF,则该二叉树的后序序列为()。
()A、ABCDEFB、FEDCBA(正确答案)C、DEFCBAD、CBAFED答案解析:参考解析:二叉树遍历可以分为3种:前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。
本题中,二叉树的前序序列为ABCDEF,可确定二叉树的根结点为A,由于后序序列最后访问根结点,可排除A、D两项;由中序序列为ABCDEF可知,以A为根的这棵二叉树不存在左子树,且由前序序列和中序序列相同可判断出每棵子树均不存在左子树(即只有右子树),后序序列先访问处于右子树上的结点F。
13.对长度为8的数组进行快速排序,最多需要的比较次数为()。
()A、8B、28(正确答案)C、56D、64答案解析:参考解析:对长度为的线性表进行快速排序,最坏情况下需要比较的次数为n(n-1)/2。
数组属于线性表,故对长度为8的数组进行快速排序,最多需要的比较次数为8(8-1)/2=28。
14.循环队列的存储空间为Q(1:50)初始状态为空。
经过一系列正常的入队与退队操作后,front=24,rear=25。
此时该循环队列中的元素个数为()。
()A、1(正确答案)B、49C、50D、25答案解析:参考解析:若循环队列的存储空间为(1:m),在循环队列运转起来后,如果front<rear,则队列中的元素个数为rear-front;如果front>rear,则队列中的元素个数为rear-front+m。
本题中front<rear,则队列中的元素个数为25-24=1。
15.设二叉树共有375个结点,其中度为2的结点有187个。
则度为1的结点个数是()。
()A、不可能有这样的二叉树B、1C、188D、0(正确答案)答案解析:参考解析:对任何一棵二叉树,度为0的结点(即叶子结点)总是比度为2的结点多一个。
本题中,度为2的结点个数为187,则度为0的结点个数为187+1=188,则度为1的结点个数为375-187-188=0。
16.在快速排序法中,每经过一次数据交换(或移动)后()。
()A、不会产生新的逆序B、只能消除一个逆序C、能消除多个逆序(正确答案)D、消除的逆序个数一定比新产生的逆序个数多答案解析:参考解析:在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。
快速排序的思想是:从线性表中选取一个元素,设为T,将线性表中后面小于T的元素移到前面,而前面大于T 的元素移到后面;结果就将线性表分成两部分(称两个子表),T插入到其分割线的位置处,这个过程称为线性表的分割,然后再用同样的方法对分割出的子表再进行同样的分割。
快速排序不是对两个相邻元素进行比较,可以实现通过一次交换而消除多个逆序,但由于均与T(基准元素)比较,也可能会产生新的逆序。
17.带链栈空的条件是()。
()A、top=bottom=-1B、top=-1且bottom=NULLC、top=NULL且bottom=-1D、top=bottom=NULL(正确答案)答案解析:参考解析:带链的栈是具有栈属性的链表。
线性链表的存储单元是不连续的。
因为是不连续的存储空间,所以指针将不会有规律地连续变化。
当top=bottom=NULL时,栈为空;当top=bottom且不等于NULL时,栈中存在一个元素,其他情况无法判断。
18.某完全二叉树按层次输出(同一层从左到右)的序列为ABCDEFGH。
该完全二叉树的前序序列为()。
()A、ABCDEFGHB、ABDHECFG(正确答案)C、HDBEAFCGD、HDEBFGCA答案解析:参考解析:完全二叉树是指除最后一层外,每一层上的节点数均达到最大值,在最后一层上只缺少右边的若干结点。