2022年2022年计算机二级公共基础知识考点 .pdf
《2022年2022年计算机二级公共基础知识考点 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机二级公共基础知识考点 .pdf(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机二级公共基础知识考点第1章 数据结构与算法考点 1:算法的基本概念所谓算法是指解题方案的准确而完整的描述。对于一个问题,如果可以通过一个计算机程序,在有限的存储空间内运行有限长的时间而得到正确结果,则称这个问题是算法可解的。算法不等于程序,也不等于计算方法。1 算法的基本特征(1)可行性(effectiveness):针对实际问题而设计的算法,执行后能够得到满意的结果。(2)确定性(definiteness):算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。(3)有穷性(finiteness):算法必须的有限时间内做完,即算法必须能在执行有限个步骤之后终止。(4)拥
2、有足够的情报:要使算法有效必须为算法提供足够的情报。当算法拥有足够的情报时,此算法才是有效的;当提供的情报不够时,算法可能无效。综上所述,算法是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,同时是明确的,此顺序将在有限的次数后终止。2算法的基本要素(1)算法中对数据的运算和操作:每个算法实际上是按解题要求从环境能进行的所有操作中选择合适的操作所组成的一组指令序列。基本的运算和操作有以下4列类:算术运算(包括加、减、乘、除等);逻辑运算(包括“与”、“或”、“非”等运算);关系运算(包括“大于”、“小于”、“等于”、“不等于”等);数据传输(包括赋值、输入、输出等操作)。(2)算法的控
3、制结构:一个算法的功能不仅仅取决非于所选用的操作,而且还与各操作间的执行顺序有关。算法中各操作之间的执行顺序称为算法的控制结构。算法的控制结构给出了算法的的框架,它不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。描述算法的工具通常有传统流程、N-S 结构化流程图和算法描述评议等。一个算法一般都以用顺序、选择和循环3种基本控制结核组合而成。3算法设计的基本方法计算机算法不同于人工处理的方法,工程上常用的算法有列举法和归纳法。在实际应用时,各种方法之间往往存在着一定的联系。(1)列举法。列举法的的思想是根据提出的问题,列举所有可能的情况并用问题中给定的条件检测哪些是需要
4、的,哪些是不需要的。列举法常用于解决“是否存在”或“有多少名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 25 页 -种可能”等类型的问题。(2)归纳法。归纳法的基本思想是通过列举少量的特殊情况,经过分析,最后找出一般的关系。从本质上讲,归纳就是通过观察一些简单而特殊的情况,最后总结出一般性的结论。(3)递推。递推是指从已知的初始条件出发,逐次推出所要求的各中间结果和最后结果。其中初始条件或是问题本身已经给定,或是通过对问题的分析与化简而确定。递推本质上也属于归纳法,工程上许多递推关系式实际上通过对实际问题的分析与归纳而得到的,因此,递推关系式往往是归纳的结果。对于数值型的递推算
5、法必须要注意数值计算的稳定性问题。(4)递归。人们在解决一些复杂问题时,为了降低问题的复杂程度(如问题的规模等),一般总是将问题逐层分解,最后归结为一些最简单的问题。这种将问题逐层分解的过程,实际上并没有对问题进行求解,而只是当解决了最后那些最简单的问题后,再沿着原来的分解的逆过程逐步进行综合,这就是递归的基本思想。递归分为直接递归与间接递归两种。(5)减半递推技术。实际问题的复杂程度往往与问题的规模有着密切的联系,因此利用分治法解决这类实际问题是有效的。工程上常用的分治法是减半递推技术。所谓“减半”,是指将问题的规模减半,而问题的性质不变;所谓“递推”,是指重复“减半”的过程。(6)回溯法。
6、在工程上有些实际问题很难归纳出一组简单的递推公式或直观的求解步骤,并且也不能进行无限的列举。对于这类问题一种有效的方法是“试”。通过对问题的分析,找出一个解决问题的线索,然后沿着这个线索逐步试探,若试探成功,就得到问题的解;若试探失败,就逐步回退,换其他路线再逐步试探。考点 2:算法复杂度1 算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。同一个算法使用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。这表明使用绝对的时间单位衡量算法的效率是不合适的。撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法“运行工作量”的大小,只依赖于问题的
7、规模(通常用整数n表示),它是问题的规模函数。即:算法的工作量=f(n)分析算法的工作量通过采用以下两种方法来分析。(1)平均性态(Average Behavior):所谓平均性态分析,是指各种特定输入下的基本运算次数的加权平均值来度量算法的工作量。(2)最坏情况复杂性(Worst-case Complexity):所谓最坏情况分析,是指在规模为n时,算法所执行的基本运算的最大次数。2 算法的空间复杂度算法的空间复杂度是指执行算法所需要的内在空间一个算法所占用的存储空间包括:算法程序所占的空间;输入的初始数据所占的存储空间;算法执行过程中所要的额外空间其中额外空间包括算法程序执行过程中的工作单
8、元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地(in place)工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以减少不必要的额外空间。1 2数据结构的基本概念名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 25 页 -考点 1:什么是数据结构1 数据结构研究的主要内容数据结构作为计算机的一门学科,主要研究和讨论以下3个方面的问题:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的 存储结构;(3)对各种数据结构进行的运
9、算。2 研究数据结构的目的研究数据结构的主要目的是为了提高数据处理的效率。提高数据处理的效率主要包括两个方面:一是提高数据处理的速度,二是尽量节省在数据处理过程中所占用的计算机存储空间。3 数据结构的定义数据结构是指相互有关联的数据元素的集合。数据元素之间的关系可以用前后件关系(或直接前驱与直接后继关系)来描述。一个数据结构应包含以下两方面作息:(1)表示数据元素的信息:(2)表示各数据元素之间的前后件关系。考点 2:数据的逻辑结构和数据的存储结构1 数据的逻辑结构数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。数据的逻辑结构只抽象地
10、反映数据元素之间的逻辑关系,即数据元素之间的前后件关系,而不管它在计算机中的存储表示形式。数据的逻辑结构有两个要素:一是数据元素的集合,通常记为D;二是 D上的关系,它反映了数据元素之间的前后件关系,通常记为R。一个数据结构B可以表示为:B=(D,R)2 数据的存储结构数据的存储结构是数据的逻辑结构在计算机存储空间中的存放形式,也称数据的物理结构。一个数据结构中的各数据元素在计算机存储空间的位置与逻辑关系有可能不同。一种数据结构可根据需要采用不同的存储结构。常用的存储结构有顺序、链接和索引等存储方式。采用不同的存储结构,其数据处理的效率是不同的。考点 3:数据结构的图形表示一个数据结构除了用二
11、元关系表示外,还可以直观地用图形表示。在数据结构的图形表示中,对于数据集合D中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,并简称为结点:为了进一步表示各数据元素之间的前后件关系,对于关系R中的每一个二元组,用一条有向线段从前件结点指向后件结点。在数据结构中,没有前件的结点称为根结点;没有后件的结点称为终端结点(也称为叶子结点)。一个数据结构中的结点可能是在动态变化的。根据需要或在处理过程中,可以在一个数据结构中增加一个新结点(称为插入运算),也可以删除数据结构中的某个结点(称为删除运算)。除此之外,对数据结构的运算还有查找、分类、合并、分解、复制和修改等。考点 4:线性结构
12、与非线性结构如果在一个数据结构中一个数据元素都没有,则称该数据结构为空的数据结构。根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空数据结构满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件,则称该数据结构为线性结构,线性结构又称为线性表。例如,线性表、栈、队列和线性链表都是线性结构。如果一个数据结构不是线性结构,称之为非线性结构。例如树、二叉树和图都是非线性结构。线性结构与非线性结构都可以是空的数据结构。对于空的数据结构,如果对该数据结构的运算是按线性结构的规则来处理的,则属于线性结构,否
13、则属于非线性结构。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 25 页 -1 3线性表及其顺序存储结构考点 1:线性表的基本概念线性表是由 n(n 0)个数据元素 1,2,,n组成有限序列,表中的每一个数据元素,除了第一个外有且只有一个前件,除了最后一个外有且只有一个后件,即线性表或是一个空表,或可以表示为(1,2,,,i,n)其中 1(i=1,2,,,n)是属于数据对象的元素,通常也称其为线性表中的一个结点。在非空表中的每个数据元素都有一个确定位置,如 1是第一个元素,n是最后一个数据元素,i是第 i个数据元素,称i为数据元素i在线性表中的位序。非空线性表有如下一些结构特征
14、:有且只有一个根结点1,它无前件;有且只有一个终端结点n,它无后件;除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。线性表中结点的个数n称为线性表的长度。当n=0 时,称为空表。考点 2:线性表的顺序存储结构线性表的顺序存储结构指的是用一组地址连续的存储单元依次存放线性表中的数据元素。线性表的顺序存储结构具备如下两个基本特征:线性表中的所有元素所占的存储空间是连续的;线性表中各数据元在存储空间中是按逻辑顺序依次存放的。假设线性表中的第一个数据元素的存储地址(指第一个字节的地址,即首地址)为ADR(a1),每个数据元 素 占 k 个 字 节,则 线 性 表 中 第 i个
15、元 素 在 计 算 机 存 储 空 间 的存 储 地 址 为 ADR(a1)=ADR(ai)+(i 1)k在线性表的顺序存储结构下可以对线性表做以下运算:插入、删除、查找、排序、分解、合并、复制和逆子转等。考点 3:顺序表的插入运算线性表的插入运算是指在表的第个位置元素之前,插入一个新结点x,使长度为 n的线性表(a1,,,ai 1,ai,,an)变成长度为n+1 的线性表(a1,,,ai,x,ai,,an)。对顺序表而言,需要改变是从第i个元素起到第 n个元素的存储位置,即从第i个到第 n个元素往后移动一个位置,共需移动n个元素。令 is(n)表示在长度为n的顺序表中进行一次插入操作时所需进
16、行“移动”元素个数的期望值(即平均移动个数),则:其中,P1是在第 i个元素之前插入一个元素的概率,n是在第i个元素之前插入一个元素时所需移动的元素个数。由于可能插入的位置i=1,2,3,,,n+1共n+1 个,假设在每个位置上进行插入的机会均等,则:由此,在上述等概率假设的情况下,考点 4:顺序表的删除运算线性表的删除运算是指将表的第个结点删去,使长度为n的线性表(a1,,,ai1,ai,ai+1,,an)变成长度为 n的线性表(a1,,,ai1,ai+1,,an)。对顺序表而言,需要改变从第 i+1 个元素起到第 n个元素的存储位置,即从第 i+1到第 n个元素往前移动一个位置,共需移动
17、n个元素。令Edl(n)表示在长度为n的顺序表中进行一次删除操作时所需要进行“移动”元素个数的期望值(即平均移动个数),则其中,是删除第 i个元素的概率,n是删除第i个元素时所需移动元素的个数。同样假设在n个可能进行删除的位置i=1,2,,,n,机会均等,则由此,在上述等概率的假设下由此可见,在以顺序方式存储的线性表中插入或删除一个数据元素,平均约需移动表中一半元素。这个数目在线性表的长度较大时是很可观的。这个缺陷完全是由于顺序存储要求线性表的元素依次存放造成的。因此,顺序存储表仅适用于不常进行插入或删除操作、表中元素相对稳定的线性表。1 4 栈和队列考点 1:栈及其基本运算名师资料总结-精品
18、资料欢迎下载-名师精心整理-第 4 页,共 25 页 -1栈的定义栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表。在表中,允许插入和删除的一端称做“栈顶(top)”,不允许插入和删除的另一端称做“栈底(bottom)”。不含元素的空表称为空栈。栈的修改是按后进先出的原则进行的。因此,栈又称为先进后出(FILO,First In Last Out)或后进先出(LIFO,Last In First Out)的线性表。2.栈的顺序存储及其运算在程序设计语言中,用一维数组S(1:m)作为栈的顺序存储空间,其中 m为栈的最大容量。S(bottom)通常为栈底元素(栈非空情况下),S(to
19、p)为栈顶元素。Top=0 时表示栈空,top=m 时表示栈满。(1)入栈运算:入栈运算是指在栈顶位置插入一个新元素。首先将栈顶指针加1(即 top 加1),然后将新元素插入到栈顶指针指向的位置。当栈顶指针已经指向存储空间的最后一个位置时,说明栈空间已满,不可能再进行入栈操作,这种情况称为栈“上溢”错误。(2)退栈运算:退栈是指取出栈顶元素并赋予一个指定的变量。首先将栈顶元素(栈顶指针指向的元素)赋予一个指定的变量,然后将栈顶指针减1(即 top 减1)。当栈顶指针为0时,说明栈空,不可进行退栈操作,这种情况称为栈的“下溢”错误。(3)读栈顶元素:读栈顶元素是指将栈顶元素赋予一个指定的变量。这
20、个运算不删除栈顶元素,只是将它赋予一个变量,因此栈顶指针不会改变。当栈顶指针为0时,说明栈空,读不到栈顶元素。考点 2:队列及其基本运算队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。在表中,允许插入的一端称做“队尾(rear)”,允许删除的另一端称做“队头(front)”。队列的修改是依“先进先出”的原则进行的,因此队列又称先进先出(FIFO,First In First Out)表或后进后出(LILO,Last In Last Out)线性表。往队列的队尾插入一个元素称为入队运算,从队列的排头删除一个元素称为退队运算。入队运算只涉及队尾指针rear 的变化,而
21、退队运算只涉及到队头指针front 的变化。考点 3:循环队列及其基本运算在实际应用中,队列的顺序存储结构一般采用循环队列的形式。所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针 rear 指向队列中的队尾元素,用排头指针 front 指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置直到队尾指针rear 指向的位置之间所有元素均为队列中的元素。循环队列的初始状态为空,即rear=front=m。当循环队列满时有rear=front,而当循环队列空时也有rear=front,即在循环队列中当rear=
22、front 时,不能确定是队列满还是队列空。在实际使用循环队列时,为了能区分队列满还是队列空,通常还需增加一个标志 s,s=0 表示队列空,s=1 表示队列非空。循环队列主要有两种基本运算:入队运算与退队运算。(1)入队运算。入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一(即rear=rear+1),并当 rear=m+1 时,设置 rear=1;然后将新元素插入到队尾指针指向的位置。当循环队列非空(s=1)且队尾指针等于排头指针时,说明循环队列已满,不能进行入队运算,这种情况称为“上溢”。(2)退队运算。退队运算是指在循环队列的队头位置退出一个元素并赋
23、予指定的变量。首先将队头指针进一(即front=front+1),并当 front=m+1 时,设置 front=1;然后将排头指针指向的元素赋予指定的变量。当循环队列为空(s=0)时,不能进行退队运算,这种情况称为“下溢”。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 25 页 -1 5 线性链表考点 1:线性链表的基本概念1线性表顺序存储的缺点(1)插入或删除的运算效率很低。在顺序存储的线性表中,插入或删除数据元素时需要移动大量的数据元素。(2)线性表的顺序存储结构下,线性表的存储空间不便于扩充。当为一个线性表分配顺序存储空间后,如果出现线性表的存储空间已满,但还需要插入新
24、的元素时就会发生“上溢”错误。(3)线性表的顺序存储结构不便于对存储空间的动态分配。2链式存储在链式存储方式中,每个结点由两部分组成:一部分用于存放数据元素值,称为数据域;另一部分用于存放指针,称为指针域。其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。在链式存储方式中,存储空间可以是连续的,也可以是不连续的,各个数据结点的存储顺序与数据元素之间的逻辑结构可以不一致,数据结构的逻辑结构由指针域来确定。3 线性链式线性表的链式存储结构称为线性链表。在线性链表中,每个结点包括数据域data 和指针域 next 两个部分;其中,域是数据域用来存放结点的值:指针域(亦称链域)用来存放结点的
25、后件的地址(或位置)。在定义的链表中,若只含有一个指针域用来存放下一个元素地址,称这样的链表为单链表或线性链表。在线性链表中,用一个专门的指针head指向线性链表中的第一个数据元素的结点。线性表中最后一个元素没有后件,因此线性链表中最后一个结点的指针为空(用NULL 或0表示)表示链表终止。在某些应用中,对于线性链表中的每个结点设置两个指针,一个称为左指针,指向其前件结点:另一个称为右指针,指向其后件结点。这种链表称为双向链表。4 栈的链式存储结构链栈栈是线性表,也可采用链式存储结构,由于线只在栈顶做插入和删除操作,因此链栈中不需要头结点,但要注意链栈中指针的方向是从栈顶指向栈底的,这正好和单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算机二级公共基础知识考点 2022 计算机 二级 公共 基础知识 考点
限制150内