全国计算机二级公共基础知识知识点

上传人:飞*** 文档编号:24804246 上传时间:2017-12-07 格式:DOC 页数:31 大小:235.50KB
返回 下载 相关 举报
全国计算机二级公共基础知识知识点_第1页
第1页 / 共31页
全国计算机二级公共基础知识知识点_第2页
第2页 / 共31页
全国计算机二级公共基础知识知识点_第3页
第3页 / 共31页
全国计算机二级公共基础知识知识点_第4页
第4页 / 共31页
全国计算机二级公共基础知识知识点_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《全国计算机二级公共基础知识知识点》由会员分享,可在线阅读,更多相关《全国计算机二级公共基础知识知识点(31页珍藏版)》请在金锄头文库上搜索。

1、1公共基础知识第一章 数据结构与算法1.1 算法1.1.1 算法的基本概念1、算法的基本特征可行性、确定性、有穷性、拥有足够的情报所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。2、算法的基本要素(1)算法中对数据的运算和操作在一般的计算机系统中,基本的运算和操作:算术运算、逻辑运算、关系运算、数据传输(2)算法的控制结构描述算法的工具:传统流程图、N-S 结构化流程图、算法描述语言等一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成3、算法设计基本方法列举法、归纳法、递推(本质上也属于归纳法,递推关系式往往是归纳的结果)

2、、递归(基础也是归纳,分为直接递归和间接递归两种) 、减半递推技术、回溯法(“试” )1.1.2 算法复杂度1、算法的时间复杂度(执行算法所需要的计算工作量)算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数算法的工作量=f(n),n 是问题的规模 两个 n 阶矩阵相乘所需要的基本运算(即两个实数的乘法)次数为 n3,即计算工作量为n3,也就是时间复杂度为 n3对于一个固定的规模,算法所执行的基本运算次数还可能与特定的输入有关可以用两种方法来分析算法的工作量:平均性态、最坏情况复杂性2、算法的空间复杂度(执行这个算法所需要的内存空间)如果额外空间量相对于问

3、题规模来说是常数,则称该算法是原地工作的1.2 数据结构的基本概念数据结构主要有三个方面的问题: 数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构 在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构 对各种数据结构进行的运算提高数据处理的效率,主要包括两个方面: 提高数据处理的速度 尽量节省在数据处理过程中所占用的计算机存储空间1.2.1 什么是数据结构无序表,只能用顺序查找对分查找只适用于有序表(在词典中查单词的方法类似于对分查找)数据结构是指相互有关联的数据元素的集合(向量、矩阵、图书馆中的图书卡片目录)在数据处理领域中,通常把数据元素之间这种固有的关系简单地用

4、前后件关系(直接前驱与直接后继关系)来描述,前后件关系所表示的实际意义随具体对象的不同而不同1、数据的逻辑结构一个数据结构应包含以下两方面的信息: 表示数据元素的信息2 表示各数据元素之间的前后件关系(数据元素之间的前后件关系是指它们的逻辑关系,而与它们在计算机中的存储位置无关)一个数据结构可以表示成:B=(D,R)D 为数据元素的集合,R 为 D 中各数据元素之间的前后件关系(一般用二元组来表示) a 与 b 是 D 中的两个数据,则二元组(a,b )表示 a 是 b 的前件,b 是 a 的后件2、数据的存储结构各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般也

5、不可能相同一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构1.2.2 数据结构的图形表示在数据结构中,没有前件的结点称为根结点,没有后件的结点称为终端结点(叶子结点)数据结构中除了根结点与终端结点外的其他结点一般称为内部结点在对数据结构的处理过程中,不仅数据结构中的结点(即数据元素)个数在动态地变化,而且,各数据元素之间的关系也有可能在动态地变化1.2.3 线性结构与非线性结构根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构和非线性结构如果一个非空的数据结构满足两个条件: 有且只有一个根结点 每一个结点最多有一个

6、前件,也最多有一个后件则称该数据结构为线性结构。线性结构又称线性表。在一个线性结构中插入或删除任何一个结点后还应是线性结构线性结构和非线性结构都可以是空的数据结构1.3 线性表及其顺序存储结构1.3.1 线性表的基本概念线性表是由 n(n0)个数据元素组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件非空线性表有如下一些结构特征: 有且只有一个根结点,它无前件 有且只有一个终端结点,它无后件 除根结点和终端结点外,其他所有节点有且只有一个前件,也有且只有一个后件。线性表中结点的个数,n 称为线性表的长度。当 n=0 时,称为空表1.3.2

7、 线性表的顺序存储结构线性表的顺序存储结构具有以下两个基本特点: 线性表中所有元素所占的存储空间是连续的 线性表中各数据元素在存储空间中是按逻辑顺序依次存放的假设线性表中的第一个数据元素的存储地址(指第一个字节的地址,即首地址)为ADR(a 1) ,每一个数据元素占 k 个字节,则线性表中第 i 个元素 ai 在计算机存储空间中的存储地址为ADR(a i)= ADR(a 1)+ (i-1 )k在顺序存储结构中,线性表中每一个数据元素在计算机存储空间中的存储地址由该元素在线性表中的位置序号唯一确定1.3.3 顺序表的插入运算在一般情况下,要在第 i(1in)个元素之前插入一个新元素时,首先要从最

8、后一个(即3第 n 个)元素开始,直到第 i 个之间共 n-i+1 个元素依次向后移动一个位置,移动结束后,第 i 个位置就被空出,然后将新元素插入到第 i 项。插入结束后,线性表的长度就增加了 11.3.4 顺序表的删除运算在一般情况下,要删除第 i(1in)个元素时,则要从第 i+1 个元素开始,直到第 n 个元素之间共 n-i 个元素依次向前移动一个位置。删除结束后,线性表的长度就减小了 11.4 栈和队列1.4.1 栈及其基本运算1、什么是栈栈是限定在一端进行插入与删除的线性表(不需要移动表中其他数据元素)栈被称为“先进后出”表或“后进先出”表。栈有记忆作用(子弹夹、一端为封闭另一端为

9、开口的容器)2、栈的顺序存储及其运算(1)入栈运算:在栈顶位置插入一个新元素(2)退栈元素:取出栈顶元素并赋给一个指定的变量(当栈顶指针为 0 时,说明栈空,不可能进行退栈操作)(3)读栈顶元素:将栈顶元素赋给一个指定的变量 在这个运算中,栈顶指针不会改变 当栈顶指针为 0 时,说明栈空,读不到栈顶元素1.4.2 队列及其基本运算1、什么是队列在操作系统中,用一个线性表来组织管理用户程序的排队执行,原则是: 初始时线性表为空 当有用户程序来到时,将该用户程序加入到线性表的末尾进行等待 当计算机系统执行完当前的用户程序后,就从线性表的头部取出一个用户程序执行队列是指允许在一端进行插入、而在另一端

10、进行删除的线性表尾指针 rear 总是指向最后被插入的元素(队尾元素) ,排头指针 front 指向排头元素的前一个位置队列又称为“先进先出”或“后进后出”的线性表2、循环队列及其运算所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用当循环队列满时有 rear=front,而当循环队列空时也有 rear=front队列空和队列满的条件:队列空的条件为 s=0队列满的条件为 s=1 且 rear=front 假设循环队列的初始状态为空,即 s=0,且 rear=front=m(1)入队运算:在循环队列队尾加入一个新元素 队尾指针进一(rear=re

11、ar+1) ,当队尾指针 rear=m+1 时,则置 rear=1(2)退队运算:在循环队列的排头位置退出一个元素并赋给指定的变量 排头指针进一(front=front+1) ,当排头指针 front=m+1 时,则置 front=11.5 线性链表1.5.1 线性链表的基本概念在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,成为数据域;另一部分用来存放指针,成为指针域1、线性链表线性表中最后一个元素没有后件,因此,线性链表中最后一个结点的指针域为空(用 NULL或 0 表示)4在线性表的链式存储结构中,各数据结点的存储序号不是连续的,并且各结点在存储空间中的位置关系与逻

12、辑关系也不一致。在线性链表中,各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一个结点的指针 HEAD 称为头指针,当HEAD=NULL(或 0)时称为空表2、带链的栈带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,这种带链的栈称为可利用栈计算机中的所有可利用空间都可以以结点为单位连接在可利用栈中3、带链的队列1.5.2 线性链表的基本运算1、在线性链表中查找指定元素 在非空线性链表中寻找包含指定元素值 x 的前一个结点 p 的基本方法:从头指针指向的结点开始往后沿指针进行扫描,直到后面已没有结点或下一个结点的数据域为 x 为止当线性链表中存在包含元素 x 的结点时

13、,则找到的 p 为第一次遇到的包含元素 x 的前一个节点序号当线性链表中不存在包含元素 x 的结点时,则找到的 p 为线性链表中的最后一个结点号2、线性链表的插入可利用栈是公共的,多个线性链表可以共享它线性链表在插入过程中不发生数据元素移动的现象,只需改变有关结点的指针即可3、线性链表的删除在线性链表中删除一个元素后,不需要移动表的数据元素,只需改变被删除元素所在结点的前一个结点的指针域即可1.5.3 循环链表及其基本运算循环链表的特点: 在循环链表中增加了一个表头结点,其数据域为任意或者根据需要来设置,指针域指向线性表的第一个元素的结点。循环链表的头指针指向表头结点 循环链表中最后一个结点的

14、指针域不是空,而是指向表头结点。即在循环链表中,所有结点的指针构成了一个环状链在循环链表中,只要指出表中任何一个结点的位置,就可以从它出发访问到表中其他所有的结点,而线性单链表做不到这一点由于在循环链表中设置了一个表头结点,因此,在任何情况下,循环链表中至少有一个结点存在,从而使空表与非空表的运算统一1.6 树与二叉树1.6.1 树的基本概念在树的结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称为树的根在树结构中,每一个结点可以有多个后件,它们都称为该结点的子结点。没有后件的结点称为叶子结点在树结构中,一个结点所拥有的后件个数称为该结点的度。叶子结点的度

15、为 0。在树中,所有结点中的最大的度称为树的度在树结构中,一般按如下原则分层: 根结点在第一层 同一层上所有结点的所有子结点都在下一层 树的最大层次称为树的度 在树中,以某结点的一个子结点为根构成的树称为该结点的一颗子树 在树中,叶子结点没有子树用树来表示算术表达式的原则如下:5 表达式中的每一个运算符在树中对应一个结点,称为运算符结点 运算符的每一个运算对象在树中为该运算符结点的子树(在树中的顺序为从左到右) 运算对象中的单变量均为叶子结点1.6.2 二叉树及其基本性质1、什么是二叉树二叉树具有以下两个特点: 非空二叉树只有一个根结点 每一个结点最多有两棵子树,且分别称为该结点的左子树与右子

16、树在二叉树中,每一个结点的度最大为 2,即所有子树(左子树或右子树)也均为二叉树当一个结点既没有左子树也没有右子树时,该结点即是叶子结点2、二叉树的基本性质性质 1 在二叉树的第 k 层上,最多有 2k-1(k1)个结点性质 2 深度为 m 的二叉树最多有 2m-1 个结点(深度为 m 的二叉树是指二叉树共有 m 层)性质 3 在任意一棵二叉树中,度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个性质 4 具有 n 个结点的二叉树,其深度至少为【log 2n】+1,其中【log 2n】表示取 log2n 的整数部分3、满二叉树与完全二叉树(1)满二叉树除最后一层外,每一层上的所有结点都有两个子结点在满二叉树中,每一层上的结点数都达到最大值(2)完全二叉树除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现;对于任何一个结点,若其右分支下的子孙结点的最大层次为 p,则

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号