全国计算机等级考试二级公共基础知识辅导讲义.docx
《全国计算机等级考试二级公共基础知识辅导讲义.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级公共基础知识辅导讲义.docx(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、书目全国计算机等级考试二级公共根底学问辅导讲义1第一章 数据构造及算法1第二章 程序设计根底7第三章 软件工程根底9第四章 数据库设计根底16全国计算机等级考试二级公共根底学问辅导讲义第一章 数据构造及算法1.1 算法1、算法是指解题方案的准确而完好的描绘。换句话说,算法是对特定问题求解步骤的一种描绘。*:算法不等于程序,也不等于计算方法。程序的编制不行能优于算法的设计这是因为:在编写程序时要受到计算机系统运行环境的限制,程序通常还要考虑很多及方法和分析无关的细微环节问题。2、算法的根本特征(1)可行性。针对实际问题而设计的算法,执行后可以得到满足的结果。(2)确定性。每一条指令的含义明确,无
2、二义性。并且在任何条件下,算法只有唯一的一条执行途径,即一样的输入只能得出一样的输出。(3)有穷性。算法必需在有限的时间内完成。有两重含义,一是算法中的操作步骤为有限个,二是每个步骤都能在有限时间内完成。(4)拥有足够的情报。算法中各种运算总是要施加到各个运算对象上,而这些运算对象又可能具有某种初始状态,这就是算法执行的起点或根据。因此,一个算法执行的结果总是及输入的初始数据有关,不同的输入将会有不同的结果输出。当输入不够或输入错误时,算法将无法执行或执行有错。一般说来,当算法拥有足够的情报时,此算法才是有效的;而当供应的情报不够时,算法可能无效。*:综上所述,所谓算法,是一组严谨地定义运算依
3、次的规则,并且每一个规则都是有效的,且是明确的,此依次将在有限的次数下终止。3、算法困难度主要包括时间困难度和空间困难度。(1)算法时间困难度是指执行算法所需要的计算工作量,可以用执行算法的过程中所需根本运算的执行次数来度量。(2)算法空间困难度是指执行这个算法所需要的内存空间。1.2 数据构造的根本概念1、数据构造是指互相有关联的数据元素的集合。2、数据构造主要讨论和讨论以下三个方面的问题:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑构造。数据的逻辑构造包含:1)表示数据元素的信息;2)表示各数据元素之间的前后件关系前后件关系:一般状况下,在具有一样特征的数据元素集合中,各个
4、数据元素之间存在某种关系(即联络),这种关系反映了该集合中的数据元素所固有的一种构造。在数据处理领域中,通常把数据元素之间这种固有的关系简洁地用前后件关系(即干脆前驱及干脆后继关系)来描绘。(2)在对数据进展处理时,各数据元素在计算机中的存储关系,即数据的存储构造。数据的存储构造有依次、链接、索引等。1)依次存储。它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来表达。由此得到的存储表示称为依次存储构造。2)链接存储。它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。由此得到的存储表示称为链式存储构造。3)索引存储:
5、除建立存储结点信息外,还建立附加的索引表来标识结点的地址。*:数据的逻辑构造反映数据元素之间的逻辑关系,数据的存储构造(也称数据的物理构造)是数据的逻辑构造在计算机存储空间中的存放形式。同一种逻辑构造的数据可以采纳不同的存储构造,但影响数据处理效率。(3)对各种数据构造进展的运算。3、数据构造的图形表示一个数据构造除了用二元关系表示外,还可以直观地用图形表示。在数据构造的图形表示中,对于数据集合D中的每一个数据元素用中间标有元素值的方框表示,一般称之为数据结点,并简称为结点;为了进一步表示各数据元素之间的前后件关系,对于关系R中的每一个二元组,用一条有向线段从前件结点指向后件结点。4、数据构造
6、分为两大类型:线性构造和非线性构造。(1)线性构造(非空的数据构造)条件:1)有且只有一个根结点在数据构造中,没有前件的结点称为根结点。;2)每一个结点最多有一个前件,也最多有一个后件。*:常见的线性构造有线性表、栈、队列和线性链表等。(2)非线性构造:不满足线性构造条件的数据构造。*:常见的非线性构造有树、二叉树和图等。1.3 线性表及其依次存储构造1、线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。线性表是由n(n0)个数据元素组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最终一个外,有且只有一个后件。线性表中数据元素
7、的个数称为线性表的长度。线性表可以为空表。*:线性表是一种存储构造,它的存储方式:依次和链式。2、线性表的依次存储构造具有两个根本特点:(1)线性表中全部元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑依次依次存放的。*:由此可以看出,在线性表的依次存储构造中,其前后件两个元素在存储空间中是紧邻的,且前件元素确定存储在后件元素的前面,可以通过计算机干脆确定第i个结点的存储地址。3、依次表的插入、删除运算(1)依次表的插入运算:在一般状况下,要在第i(1in)个元素之前插入一个新元素时,首先要从最终一个(即第n个)元素开场,直到第i个元素之间共n-i+1个元素依次向后挪动
8、一个位置,挪动完毕后,第i个位置就被空出,然后将新元素插入到第i项。插入完毕后,线性表的长度就增加了1。*:顺性表的插入运算时需要挪动元素,在等概率状况下,平均需要挪动n/2个元素。(2)依次表的删除运算:在一般状况下,要删除第i(1in)个元素时,则要从第i+1个元素开场,直到第n个元素之间共n-i个元素依次向前挪动一个位置。删除完毕后,线性表的长度就减小了1。*:进展顺性表的删除运算时也需要挪动元素,在等概率状况下,平均需要挪动(n-1)/2个元素。插入、删除运算不便利。1.4 栈和队列1、栈及其根本运算栈是限定在一端进展插入及删除运算的线性表。在栈中,允许插入及删除的一端称为栈顶,不允许
9、插入及删除的另一端称为栈底。栈顶元素总是最终被插入的元素,栈底元素总是最先被插入的元素。即栈是根据“先进后出”或“后进先出”的原则组织数据的。栈具有记忆作用。栈的根本运算:1)插入元素称为入栈运算;2)删除元素称为退栈运算;3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变更。栈的存储方式和线性表类似,也有两种,即依次栈和链式栈。2、队列及其根本运算队列是指允许在一端(队尾)进入插入,而在另一端(队头)进展删除的线性表。尾指针(Rear)指向队尾元素,头指针(front)指向排头元素的前一个位置(队头)。队列是“先进先出”或“后进后出”的线性表。队列运算包括:1)入队运算:从队尾插入一
10、个元素;2)退队运算:从队头删除一个元素。循环队列及其运算:所谓循环队列,就是将队列存储空间的最终一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环运用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置,因此,从头指针front指向的后一个位置直到队尾指针rear指向的位置之间,全部的元素均为队列中的元素。*:循环队列中元素的个数=rear-front。1.5 线性链表1、线性表依次存储的缺点:(1)插入或删除的运算效率很低。在依次存储的线性表中,插入或删除数据元素时需要挪动大量的数据元素;(2)线性表的依次存储构造下,线性表的存储空间不
11、便于扩大;(3)线性表的依次存储构造不便于对存储空间的动态安排。2、线性链表:线性表的链式存储构造称为线性链表,是一种物理存储单元上非连续、非依次的存储构造,数据元素的逻辑依次是通过链表中的指针链接来实现的。因此,在链式存储方式中,每个结点由两部分组成:一部分用于存放数据元素的值,称为数据域;另一部分用于存放指针,称为指针域,用于指向该结点的前一个或后一个结点(即前件或后件),如下图所示:线性链表分为单链表、双向链表和循环链表三种类型。在单链表中,每一个结点只有一个指针域,由这个指针只能找到其后件结点,而不能找到其前件结点。因此,在某些应用中,对于线性链表中的每个结点设置两个指针,一个称为左指
12、针,指向其前件结点;另一个称为右指针,指向其后件结点,这种链表称为双向链表,如下图所示:3、线性链表的根本运算(1)在线性链表中包含指定元素的结点之前插入一个新元素。*:在线性链表中插入元素时,不需要挪动数据元素,只需要修改相关结点指针即可,也不会出现“上溢当为一个线性表安排依次存储构造后,假如出现线性表的存储空间已满,但还需要插入新的元素时,就会发生“上溢”现象。”现象(学吧学吧独家稿件)。(2)在线性链表中删除包含指定元素的结点。*:在线性链表中删除元素时,也不需要挪动数据元素,只需要修改相关结点指针即可。(3)将两个线性链表按要求合并成一个线性链表。(4)将一个线性链表按要求进展分解。(
13、5)逆转线性链表。(6)复制线性链表。(7)线性链表的排序。(8)线性链表的查找。*:线性链表不能随机存取在链表中,即使知道被访问结点的序号i,也不能像依次表中那样干脆按序号i访问结点,而只能从链表的头指针动身,顺着链域逐个结点往下搜寻,直至搜寻到第i个结点为止。因此,链表不是随机存储构造。4、循环链表及其根本运算在线性链表中,其插入及删除的运算虽然比拟便利,但还存在一个问题,在运算过程中对于空表和对第一个结点的处理必需单独考虑,使空表及非空表的运算不统一。为了克制线性链表的这个缺点,可以采纳另一种链接方式,即循环链表。及前面所讨论的线性链表相比,循环链表具有以下两个特点:1)在链表中增加了一
14、个表头结点,其数据域为随意或者根据需要来设置,指针域指向线性表的第一个元素的结点,而循环链表的头指针指向表头结点;2)循环链表中最终一个结点的指针域不是空,而是指向表头结点。即在循环链表中,全部结点的指针构成了一个环状链。下图a是一个非空的循环链表,图b是一个空的循环链表:循环链表的优点主要表达在两个方面:一是在循环链表中,只要指出表中任何一个结点的位置,就可以从它动身访问到表中其他全部的结点,而线性单链表做不到这一点;二是由于在循环链表中设置了一个表头结点,在任何状况下,循环链表中至少有一个结点存在,从而使空表及非空表的运算统一。*:循环链表是在单链表的根底上增加了一个表头结点,其插入和删除
15、运算及单链表一样。但它可以从任一结点动身来访问表中其他全部结点,并实现空表及非空表的运算的统一。1.6 树及二叉树(学吧学吧独家稿件)1、树的根本概念树是一种简洁的非线性构造。在树这种数据构造中,全部数据元素之间的关系具有明显的层次特性。在树构造中,每一个结点只有一个前件,称为父结点。没有前件的结点只有一个,称为树的根结点,简称树的根。每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。在树构造中,一个结点所拥有的后件的个数称为该结点的度,全部结点中最大的度称为树的度。树的最大层次称为树的深度。2、二叉树及其根本性质(1)什么是二叉树二叉树是一种很有用的非线性构造,它具有
16、以下两个特点:1)非空二叉树只有一个根结点;2)每一个结点最多有两棵子树,且分别称为该结点的左子树及右子树。*:根据二叉树的概念可知,二叉树的度可以为0(叶结点)、1(只有一棵子树)或2(有2棵子树)。(2)二叉树的根本性质(学吧学吧独家稿件)性质1 在二叉树的第k层上,最多有 个结点。性质2 深度为m的二叉树最多有个 个结点。性质3 在随意一棵二叉树中,度数为0的结点(即叶子结点)总比度为2的结点多一个。性质4 具有n个结点的二叉树,其深度至少为 ,其中 表示取 的整数部分。3、满二叉树及完全二叉树满二叉树:除最终一层外,每一层上的全部结点都有两个子结点。完全二叉树:除最终一层外,每一层上的
17、结点数均到达最大值;在最终一层上只缺少右边的若干结点。*:根据完全二叉树的定义可得出:度为1的结点的个数为0或1。下图a表示的是满二叉树,下图b表示的是完全二叉树:完全二叉树还具有如下两个特性:性质5 具有n个结点的完全二叉树深度为 。性质6 设完全二叉树共有n个结点,假如从根结点开场,按层序(每一层从左到右)用自然数1,2,n给结点进展编号,则对于编号为k(k=1,2,n)的结点有以下结论:若k=1,则该结点为根结点,它没有父结点;若k1,则该结点的父结点的编号为INT(k/2)。若2kn,则编号为k的左子结点编号为2k;否则该结点无左子结点(明显也没有右子结点)。若2k+1n,则编号为k的
18、右子结点编号为2k+1;否则该结点无右子结点。4、二叉树的存储构造在计算机中,二叉树通常采纳链式存储构造。及线性链表类似,用于存储二叉树中各元素的存储结点也由两部分组成:数据域和指针域。但在二叉树中,由于每一个元素可以有两个后件(即两个子结点),因此,用于存储二叉树的存储结点的指针域有两个:一个用于指向该结点的左子结点的存储地址,称为左指针域;另一个用于指向该结点的右子结点的存储地址,称为右指针域。*:一般二叉树通常采纳链式存储构造,对于满二叉树及完全二叉树来说,可以按层序进展依次存储这样,不仅节约了存储空间,又能便利地确定每一个结点的父结点及左右子结点的位置,但依次存储构造对于一般的二叉树不
19、适用。5、二叉树的遍历(学吧学吧独家稿件)二叉树的遍历是指不重复地访问二叉树中的全部结点。二叉树的遍历可以分为以下三种:(1)前序遍历(DLR):若二叉树为空,则完毕返回。否则:首先访问根结点,然后遍历左子树,最终遍历右子树;并且,在遍历左右子树时,仍旧先访问根结点,然后遍历左子树,最终遍历右子树。(2)中序遍历(LDR):若二叉树为空,则完毕返回。否则:首先遍历左子树,然后访问根结点,最终遍历右子树;并且,在遍历左、右子树时,仍旧先遍历左子树,然后访问根结点,最终遍历右子树。(3)后序遍历(LRD):若二叉树为空,则完毕返回。否则:首先遍历左子树,然后遍历右子树,最终访问根结点,并且,在遍历
20、左、右子树时,仍旧先遍历左子树,然后遍历右子树,最终访问根结点。1.7 查找技术查找:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素。查找结果:(查找胜利:找到;查找不胜利:没找到。)平均查找长度:查找过程中关键字和给定值比拟的平均次数。1、依次查找根本思想:从表中的第一个元素开场,将给定的值及表中逐个元素的关键字进展比拟,直到两者相符,查到所要找的元素为止。否则就是表中没有要找的元素,查找不胜利。在平均状况下,利用依次查找法在线性表中查找一个元素,大约要及线性表中一半的元素进展比拟,最坏状况下需要比拟n次。依次查找一个具有n个元素的线性表,其平均困难度为O(n)。下列两种状
21、况下只能采纳依次查找:1)假如线性表是无序表(即表中的元素是无序的),则不管是依次存储构造还是链式存储构造,都只能用依次查找。2)即使是有序线性表,假如采纳链式存储构造,也只能用依次查找。2、二分法查找思想:先确定待查找记录所在的范围,然后逐步缩小范围,直到找到或确认找不到该记录为止。前提:必需在具有依次存储构造的有序表中进展。查找过程:1)若中间项(中间项mid=(n-1)/2,mid的值四舍五入取整)的值等于x,则说明已查到;2)若x小于中间项的值,则在线性表的前半部分查找;3)若x大于中间项的值,则在线性表的后半部分查找。特点:比依次查找方法效率高。最坏的状况下,需要比拟log2n次。*
22、:二分法查找只适用于依次存储的线性表,且表中元素必需按关键字有序(升序)排列允许相邻元素值相等。对于无序线性表和线性表的链式存储构造只能用依次查找。在长度为n的有序线性表中进展二分法查找,其时间困难度为O(log2n)。1.8 排序技术(学吧学吧独家稿件)排序是指将一个无序序列整理成按值非递减依次排列的有序序列,即是将无序的记录序列调整为有序记录序列的一种操作。1、交换类排序法(方法:冒泡排序,快速排序)。2、插入类排序法(方法:简洁插入排序,希尔排序)。3、选择类排序法(方法:简洁选择排序,堆排序)。总结:各种排序法比拟:本章应考点拨:本章内容在笔试中会出现5-6个题目,是公共根底学问部分出
23、题量比拟多的一章,所占分值也比拟大,约10分。第二章 程序设计根底2.1 程序设计风格(学吧学吧独家稿件)程序设计的风格主要强调:“清楚第一,效率第二”“清楚第一,效率第二”是当今主导的程序设计风格。主要应留意和考虑下述一些因素:(1)源程序文档化。1)符号名的命名。符号名能反映它所代表的实际东西,应有确定的实际含义。2)程序的注释。分为序言性注释和功能性注释。序言性注释:位于程序开头部分,包括程序标题、程序功能说明、主要算法、接口说明、程序位置、开发简历、程序设计者、复审者、复审日期及修改日期等。功能性注释:嵌在源程序体之中,用于描绘其后的语句或程序的主要功能。3)视觉组织。利用空格、空行、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 二级 公共 基础知识 辅导 讲义
限制150内