2022年二级公共基础知识总结.docx
《2022年二级公共基础知识总结.docx》由会员分享,可在线阅读,更多相关《2022年二级公共基础知识总结.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、二级公共基础学问总结第一章 数据结构与算法1.1 算法算法:是一组有穷指令集,是解题方案的精确而完整的描述;通俗地说,算法就是运算机解题的过程;算法不等于程序,也不等于运算方法,程序的编制不行能优于算法的设计;算法是一组严谨地定义运算次序的规章,每一个规章都是有效的,且是明确的,此次序将在有限的次数下终止;所以其四个基本特点包括:(1 )确定性,算法中每一步骤都必需有明确定义, 不答应有模棱两可的说明,不答应有多义性;(2 )有穷性,算法必需能在有限的时间内做完,即能在执行有限个步骤后终止;(3 )可行性,算法原就上能够精确地执行;(4 )拥有足够的情报;算法的基本要素:一是对数据对象的运算和
2、操作;二是算法的掌握结构;指令系统:一个运算机系统能执行的全部指令的集合;基本运算和操作包括:算术运算、规律运算、关系运算、数据传输;算法的三种基本掌握结构:次序结构、挑选结构、循环结构;算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法;算法效率的度量 算法复杂度: 算法时间复杂度和算法空间复杂度;算法时间复杂度:指执行算法所需要的运算工作量;即算法执行过程中所需要的基本运算次数;通常,一个算法所用的时间包括编译时间和运行时间;算法空间复杂度:指执行这个算法所需要的内存空间;包括算法程序所占的空间,输入的初始数据所占的空间,算法执行过程中所需的额外空间;1.2 数据结构的基本
3、概念数据结构:指相互有关联的数据元素的集合;数据结构讨论的三个方面:(1 )数据集合中各数据元素之间所固有的规律关系, 即数据的规律结构;(2 )在对数据进行处理时,各数据元素在运算机中的储备关系,即数据的储备结构;(3 )对各种数据结构进行的运算;数据的规律结构应包含:(1 )表示数据元素的信息;(2 )表示各数据元素之间的前后件关系 指规律关系,与储备位置无关 ;数据的规律结构在运算机储备空间中的存放形式称为数据的储备结构 ,也称数据物理结构;数据的储备结构有次序、链接、索引等; 线性结构的条件, 一个非空数据结构 :(1 )有且只有一个根结点;( 2 )每一个结点最多有一个前件,也最多有
4、一个后件;非线性结构:不满意线性结构条件的数据结构;1.3 线性表及其次序储备结构线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的; 在复杂线性表中, 由如干项数据元素组成的数据元素称为记录;由多个记录构成的线性表称为文件;非空线性表的结构特点:( 1 )且只有一个根结点 a1 ,它无前件;( 2 )有且只有一个终端结点 an ,它无后件;( 3 )除根结点与终端结点外,其他全部结点有且只有一个前件,也有且只有一个后件;结点个数 n 称为线性表的长度,当 n=0 时,称为空表;线性表的次序储备结构具有以下两个基本特点:( 1 )线性表中全部元素所占的储备
5、空间是连续的;( 2 )线性表中各数据元素在储备空间中是按规律次序依次存放的;元素 ai 的储备地址为: ADRai=ADRa1+i-1k,ADRa1为第一个元素的地址, k 代表每个元素占的字节数;次序表的运算:查找、插入、删除;1.4 线性链表数据结构中的每一个结点对应于一个储备单元,这种储备单元称为储备结点,简称结点;结点由两部分组成: 1用于储备数据元素值, 称为数据域;2用于存放指针,称为指针域,用于指向前一个或后一个结点;在链式储备结构中, 储备数据结构的储备空间可以不连续, 各数据结点的储备次序与数据元素之间的规律关系可以不一样, 而数据元素之间的规律关系是由指针域来确定的;链式
6、储备方式即可用于表示线性结构,也可用于表示非线性结构;线性单链表中, HEAD 称为头指针, HEAD=NULL (或0 )称为空表;假如是双项链表的两指针:左指针(Llink )指向前件结点,右指针( Rlink )指向后件结点;线性链表的基本运算:查找、插入、删除;1.5 栈和队列栈:限定在一端进行插入与删除的线性表;其答应插入与删除的一端称为栈顶,用指针top 表示栈顶位置;不 答应 插 入 与删 除的 另一 端 称 为栈 底, 用指 针bottom表示栈底;栈依据 “先进后出 ”( FILO )或 “后进先出 ”( LIFO )组织数据,栈具有记忆作用;栈的储备方式有次序储备和链式储备
7、;栈的基本运算: 1入栈运算,在栈顶位置插入元素;(2) 退栈运算,删除元素 取出栈顶元素并赋给一个指定的变量 ;(3) 读栈顶元素, 将栈顶元素赋给一个指定的变量,此时指针无变化;队列:指答应在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表;用rear 指针指向队尾,用 front 指针指向队头元素的前一个位置;队列是 “先进先出 ”( FIFO )或 “后进后出 ”( LILO )的线性表;队列运算包括: 1入队运算:从队尾插入一个元素;(2) 退队运算:从队头删除一个元素;队列的次序储备结构一般采纳队列循环的形式;循环队列 s=0 表示队列空; s=1 且front=rear表
8、示队列满;运算循环队列的元素个数:“尾指针减头指针 ”,如为负数,再加其容量即可;1.6 树与二叉树树是一种简洁的非线性结构,其全部元素之间具有明显的层次特性;在树结构中, 每一个结点只有一个前件, 称为父结点;没有前件的结点只有一个,称为树的根结点,简称树的根;每一个结点可以有多个后件,称为该结点的子结点;没有后件的结点称为叶子结点;在树结构中, 一个结点所拥有的后件的个数称为该结点的度,全部结点中最大的度称为树的度;树的最大层次称为树的深度;二叉树的特点: 1非空二叉树只有一个根结点;(2) 每一个结点最多有两棵子树, 且分别称为该结点的左子树与右子树;满二叉树是指除最终一层外,每一层上的
9、全部结点有两个子结点, 就k层上有 2 k-1 个结点深度为 m 的满二叉树有 2 m -1 个结点;完全二叉树是指除最终一层外,每一层上的结点数均达到最大值,在最终一层上只缺少右边的如干结点; 二叉树基本性质: ( 1)在二叉树的第 k 层上,最多有2 k-1 k 1 个结点;( 2 ) 深度为 m 的二叉 树 最多有2 m -1 个结点;(3 )度为 0 的结点(即叶子结点) 总是比度为 2 的结点多一个;(4 )具有 n 个结点的二叉树,其深度至少为 log 2 n+1,其中log 2 n 表示取log 2n 的整数部分(5) 具有 n 个结点的完全二叉树的深度为 log 2n+1;(6
10、) 设完全二叉树共有 n 个结点;假如从根结点开头,按层序(每一层从左到右)用自然数 1,2, n给结点进行编号( k=1,2 .n),有以下结论:如 k=1 ,就该结点为根结点,它没有父结点;如k1 ,就该结点的父结点编号为INTk/2;如 2k n ,就 k 结点的左子结点编号为 2k ;否就该结点无左子结点(也无右子结点) ;如 2k+1n ,就编号为 k 的结点的右子结点编号为2k+1;否就该结点无右子结点;补充:增加度为 1 的结点不会影响二叉树的叶子结点数,每增加一个度为2 的结点便会增加一个叶子结点,没有度为2 的结点时叶子结点数为 1 ;已知完全二叉树有 x个结点,求其叶子结点
11、数:确定层数为k ;第 k 层的结点数y=x-2k-1 -1 ;第 k-1 层的叶子结点数 n=2k-1-1 -y/2 ; 最终 y+n ;二叉树储备结构采纳链式储备结构,对于满二叉树与完全二叉树可以按层序进行次序储备;二叉树的遍历:( 1 )前序遍历( DLR ),第一拜访根结点,然后遍历左子树,最终遍历右子树;(树根在第一,下走不跳结点)( 2 )中序遍历( LDR ),第一遍历左子树,然后拜访根结点,最终遍历右子树;(有左先左,再寻根,后找右;最左边的结点最先遍历,最右边的结点最终遍历)( 3 )后序遍历( LRD )第一遍历左子树,然后拜访遍历右子树,最终拜访根结点;(有左先左, 再找
12、右, 后寻根, 到最右一路上行, 树根在最终)小结:规律结构可分为线性表和非线性表;线性表包括栈、 队列,其储备方式为次序储备、链式储备均可;链式型有:线性链表,带链的栈,带链的队列,循环链表等;非线性表包括树 二叉树 ,其储备方式为链式储备;1.7 查找技术只能使用次序查找的两种情形:( 1 )线性表为无序表,不管是次序储备仍是链式储备;( 2 )表采纳链式储备结构,即使是有序线性表;二分法查找只适用于次序储备的有序表, 对于长度为n 的有序线性表, 最坏情形只需比较 log 2 n 次,而次序查找需要比较 n 次;1.8 排序技术排序是指将一个无序序列整理成按值非递减次序排列的有序序列;交
13、换类排序法: (1 )冒泡排序法,需要比较的次数为nn-1/2;2 快速排序法;插入类排序法: (1 )简洁插入排序法,最坏情形需要nn-1/2次比较;2希 尔排 序 法 , 最 坏情 况需 要On 1.5 次比较;挑选类排序法: (1 )简洁挑选排序法 , 最坏情形需要nn-1/2 次比较;2堆 排 序 法 , 最 坏 情 况 需 要Onlog 2 n 次比较;相比以上几种 除希尔排序法外 ,堆排序法的时间复杂度最小;其次章程序设计基础2.1 程序设计设计方法和风格“清楚第一、效率其次 ”已成为当今主导的程序设计风格;形成良好的程序设计风格需留意: 详见书 P271 、源程序文档化;2 、数
14、据说明的方法;3 、语句的结构;4 、输入和输出;注释分序言性注释和功能性注释;语句结构清楚第一、效率其次;2.2 结构化程序设计结构化程序设计方法的四条原就是:1 、自顶向下; 2 、逐步求精; 3 、模块化;4 、限制使用 goto 语句;结构化程序的基本结构及特点:(1 )次序结构:一种简洁的程序设计,最基本、最常用的结构;(2 )挑选结构:又称分支结构,包括简洁挑选和多分支挑选结构,可依据条件,判定应当挑选哪一条分支来执行相应的语句序列;(3 )循环结构:又称重复结构,可依据给定条件, 判定是否需要重复执行某一相同或类似的程序段;结构化程序设计的特点:只有一个入口和出口2.3 面对对象
15、的程序设计面对对象的程序设计的首次提出以60 岁月末挪威奥斯陆高校和挪威运算机中心研制的SIMULA 语言为标志;面对对象方法的优点:(1 )与人类习惯的思维方法一样;(2 )稳固性好;(3 )可重用性好;(4 )易于开发大型软件产品; ( 5 )可爱护性好;对象是面对对象方法中最基本的概念, 可以用来表示客观世界中的任何实体,对象是实体的抽象;面对对象的程序设计方法中,对象是由数据的容许的操作组成的封装体, 是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其 静态特点的属性和它可执行的一组操作组成;属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作
16、来转变;操作描述了对象执行的功能,是对象的动态属性,操作也称为方法或服务;对象的基本特点:(1 )标识惟一性;(2 )分类性; ( 3 )多态性;(4 )封装性; (5 )模块独立性好;类是指具有共同属性、共同方法的对象的集合;类是关于对象性质的描述;类是对象的抽象,对象是其对应类的一个实例;消息是一个实例与另一个实例之间传递的信息;对象间的通信靠消息传递; 它恳求对象执行某一处理或回答某一要求的信息,它统一了数据流和掌握流;消息的组成包括:(1 )接收消息的对象的名称;(2 )消息标识符, 也称消息名; ( 3)零个或多个参数;继承是使用已有的类定义作为基础建立新类的定义技术,广义指能够直接
17、获得已有的性质和特点,而不必重复定义他们;继承具有传递性, 一个类实际上继承了他上层的全部基类的特性;继承分单继承和多重继承; 单继承指一个类只答应有一个父类,即类等级为树形结构;多重继承指一个类 答应有多个父类;多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象第三章软件工程基础3.1 软件工程基本概念运算机软件是包括程序、数据及相关文档的完整集合;软件的特点包括:( 1 )软件是一种规律实体,具有抽象性;( 2 )软件的生产与硬件不同,它没有明显的制作过程;( 3 )软件在运行、使用期间不存在磨损、老化问题;( 4 )软件的开发、运行对运算机系统具有依靠性, 受运算机系统的限
18、制,这导致了软件移植的问题;( 5 )软件复杂性高,成本昂贵;( 6 )软件开发涉及诸多的社会因素;软件按功能分为应用软件、系统软件、支撑软件 或工具软件 ;软件危机主要表现在成本、质量、生产率等问题;软件工程是应用于运算机软件的定义、开发和爱护的一整套方法、工具、文档、实践标准和工序;简洁的 说就是使软件走向工程化; 软件工程的核心思想是把软件产品看作是一个工程产品来处理;软件工程包括 3 个要素:方法、工具和过程;软件工程过程是把软件转化为输出的一组彼此相关的资源活动,包含 4 种基本活动:( 1 )Pplan 软件规格说明;(2 )Ddo 软件开发;( 3 ) Ccheck 软 件 确
19、认 ;( 4 )Aaction 软件演进;软件生命周期:软件产品从提出、实现、使用爱护到停止使用退役的过程;软件生命周期分三个阶段:软件定义、软件开发、运行爱护,主要活动阶段是:( 1 )可行性讨论与方案制定;(2 )需求分析;( 3 )软件设计(概要设计和具体设计); (4 )软件实现;(5 )软件测试;( 6 )运行和爱护;软件工程的目标:在给定成本、进度的前提下,开发出具有有效性、牢靠性、可懂得性、可爱护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满意用户需求的产品;基本目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发软件易于移植;需要较低的费用;能按时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 二级 公共 基础知识 总结
限制150内