第一章数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。1.2 数据结构的基本基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。1.3 线性表及其顺序存储结构线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。非空线性表的结构特征:(1)且只有一个根结点a1,它无前件;(2)有且只有一个终端结点an,它无后件;(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。
结点个数n称为线性表的长度,当n=0时,称为空表。线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素的所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
ai的存储地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每个元素占的字节数。顺序表的运算:插入、删除。
(详见14--16页)1.4 栈和队列栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。
用top表示栈顶位置,用bottom表示栈底。栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时指针无变化。
队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。Rear指针指向队尾,front指针指向队头。
队列是“先进行出”(FIFO)或“后进后出”(LILO)的线性表。队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删除一个元素。
循环队列:s=0表示队列空,s=1且front=rear表示队列满1.5 线性链表数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。结点由两部分组成:(1)用于存储数据元素值,称为数据域;(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
线性链表,HEAD称为头指针,HEAD=NULL(或0)称为空表,如果是两指针:左指针(Llink)指向前件结点,右指针(Rlink)指向后件结点。线性链表的基本运算:查找、插入、删除。
1.6 树与二*树树是一种简单的非线性结构,所有元素之间具有明显的层次特性。在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根。
每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。
在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。树的最大层次称为树的深度。
二*树的特点:(1)非空二*树只有一个根结点;(2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。二*树的基本性质:(1)在二*树的第k层上,最多有2k-1(k≥1)个结点;(2)深度为m的二*树最多有2m-1个结点;(3)度为0的结点(即叶子结点)总是比度为2的结点多一个;(4)具有n个结点的二*树,其深度至少为[log2n]+1,其中[。
公共基础知识
基本要求
1.掌握算法的基本概念。
2.掌握基本数据结构及其操作。
3.掌握基本排序和查找算法。
4.掌握逐步求精的结构化程序设计方法。
5.掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。
6.掌握数据库的基本知识,了解关系数据库的设计。
考试内容
一、基本数据结构与算法
1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。
2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。
3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。
4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。
5.线性单链表、双向链表与循环链表的结构及其基本运算。
6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。
7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。
二、程序设计基础
1.程序设计方法与风格
2.结构化程序设计。
3.面向对象的程序设计方法,对象,方法,属性及继承与多态性。
三、软件工程基础
1.软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。
2.结构化分析方法,数据流图,数据字典,软件需求规格说明书。
3.结构化设计方法,总体设计与详细设计。
4.软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。
5.程序的调试,静态调试与动态调试。
四、数据库设计基础
1.数据库的基本概念:数据库,数据库管理系统,数据库系统。
2.数据模型,实体联系模型及E―R图,从E―R图导出关系数据模型。
3.关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理 论。
4.数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。
考试方式
1.公共基础知识的考试方式为笔试,与C语言程序设计(C++语言程序设计、Java语言程序设计、Visual Basic语言程序设计、Visual FoxPro数据库程序设计或Access数据库程序设计)的笔试部分合为一张试卷,公共基础知识部分占全卷的30分。
2.公共基础知识有l0道选择题和5道填
这个随便搜一下就知道啊:第一节 计算机概述 一、计算机发展概况 第一代电子管计算机(1946-1957) 第二代晶体管计算机(1957-1964) 第三代中小集成电路计算机(1964-1972) 第四代大规模、超大集成电路计算机(1972-现在) 二、计算机的应用 1.科学计算 2.数据处理 3.实时控制 4.计算机辅助工作 CAD CAM CAI CAE 5.人工智能 三、计算机信息处理的特点 (1)能高速度、高质量地完成各种数据加工任务。
(2)具有庞大的数据存储容量和极快的数据存取速度。 (3)能提供方便的适用方式与丰富多样的信息输出形式。
(4)方便而迅速的计算机通信使信息共享很容易实现。 (5)高效率的计算机辅助开发手段。
模拟练习 【例1·单选题】第四代计算机的主要特征是( )。 A.电子管 B.晶体管 C.中小规模集成电路 D.大规模和超大规模集成电路『正确答案』D【例2·单选题】计算机辅助设计的英文缩写是( )。
A.CAD B.CAI C.CAM D.CAT『正确答案』A第二节 数据在计算机中的表示 一、数据与信息 国际标准化组织(ISO)对数据所下的定义是:“数据是对事实、概念或指令的一种特殊表达形式,这种特殊的表达形式可以用人工的方法或者用自动化的装置进行通信、翻译转换或者进行加工处理。” 信息是对人们有用的数据,这些数据可能影响到人们行为决策。
二、二进制 (一) 二进制的相关概念 1.二进制,数字电子计算机中采用二进制计数法,在二进制计数法中只有两个数码:即0和1,其基数为二,即逢二向高位进一。 2.二进制数与十进制数的转换 3.八进制与十六进制 有关二进制、十进制、八进制、十六进制数之间的相互转换,可以利用“附件”中的计算器来进行。
(二) 二进制单位(补充内容) 位bit:用于表示一个二进制位、存储信息的最小单位。 字节Byte:存储信息的基本单位。
1字节=8位 1Byte=8bit 换算单位: 1KB=1024B=210B 1MB=1024KB=220B 1GB=1024MB=230B 字长:计算机一次能处理的二进制位数。 常用:8位、16位、32位、64位 三、数值数据在计算机中的表示 数值数据在计算机中采用二进制形式表示,其表示方式有定点表示法和浮点表示法两种。
四、西文字符在计算机中的表示 西文包括:英文字母、数字符号、标点符号、运算符号、控制符号 ASCII码-美国标准信息交换码(二进制) 基本ASCII用7位二进制数表示,占用一个字节,最高位为0。 例:英文字母'B'的7位ASCII码为100 0010。
存储时为0100 0010。 比较大小:数字<大写字母<小写字母 五、中文在计算机中的表示 1.汉字的输入码 汉字输入方法:键盘输入、语音输入、扫描输入、手写输入方法等。
键盘输入法: 数字编码(区位码) 拼音编码(全拼、双拼) 字形编码(五笔字型) 型音编码(自然码) 2.汉字的国际交换码与机内码 国标码: 计算机与其他系统或设备之间交换汉字信息的标准编码,又称国际码。1981年,我国颁布了国家标准《信息交换用字编码字符集·基本集》,汉字国标码字符集中共收录了汉字和图形符号7445个,其中一级汉字3755个,二级汉字3008个和图形符号682个。
一级汉字为使用频度高的常用汉字,按汉语拼音安母顺序排列;不常用的汉字为二级汉字按部首排列。 在汉字交换码中,每个汉字用两个字节表示。
汉字机内码(内码): 是计算机系统中用来存储和处理中、西文信息的代码。 汉字内码:用两个字节表示。
内码与国标码的关系: 它们的区别在于国际码两个字节的最高位都是“0”,而机内码两个字节的最高位都是“1”。 3.汉字的字形码 汉字输出码又叫做汉字字形码或汉字字模。
汉字输出码的和用是输出汉字,对汉字字形经过点阵的数字化后形成的一串二进制数称为汉字输出码。 点阵字形由排成方阵(如16*16、24*24、48*48……)的一组二进制数字表示一个字符。
16*16点阵字形常用于屏幕显示,笔画生硬,细节难以区分:打印输出常用24*24、40*40、48*48,甚至96*96或更高,点阵的数字越大,说明笔锋越完整,字迹越清晰美观。 点阵字形的字节计算:点阵数/8 4.常用汉字输入法简介 模拟练习 【例3·判断题】'9'的ASCII码小于'a'的ASCII码。
( )『正确答案』对【例4·单选题】存储信息的基本单位是( )。 A.bit B.byte C.KB D.MB『正确答案』B【例5·判断题】汉字输入码是为了解决将汉字输入计算机而编制的代码。
( )『正确答案』对【例6·单选题】24*24点阵字库中的一个汉字需占( )字节的存储空间。 A.16 B.72 C.48 D.64『正确答案』B【例7·单选题】不同的汉字输入方法输入汉字后,该汉字的内码是( )的。
A.相同的 B.完全不相同 C.大部分相同 D.部分相同『正确答案』A第三节 计算机硬件 一、计算机系统 一个完整的计算机系统是由硬件、软件及用户等三部分组成的人机系统。 二、计算机的逻辑结构 计算机体系结构的基本思想:冯·诺依曼原理 1.输入设备 2.输出设备 3.存储器 (1)主存储器 主存储器也叫内存储器,简称内存,其特点是存取速度快、可靠性高,但容量有限。
(2)辅助存。
去百度文库,查看完整内容> 内容来自用户:梅悠心理 复习及应试建议:1.考生的复习必须遵守:“80/20的原则”二级考试的公共知识部分的覆盖面广,至少涵盖了计算机应用专业的四门核心课程:算法及数据结构、程序设计基础、软件工程基础和数据库。
事实上,这些课程本身的涉及面就很广,难度系数较大。因此,这些课程甚至也是计算机专业学生最头疼的课程,对大多数考生来说其难度之大不言而喻。
所以,考生应把80%的时间用在20%的重点知识点上,争取用20%的重点知识点来答对80%的考题,这是考生复习二级考试的公共知识部分的总体思路。2.复习的关键是考生必须准确判断和掌握常见考点考生必须能够准确判断和掌握常见考点,例如:算法部分主要考查算法的概念及算法的复杂度;数据结构部分主要考查最基本的概念、最典型的数据结构和最常见的操作;程序设计部分主要考查程序设计风格的基本要求、结构化程序设计的最基本知识和面向对象程序设计的最常见概念;软件工程基础部分主要考查软件工程的基本概念及软件生命周期的各个阶段的基础知识;数据库基础部分主要考查数据库基本概念、数据模型、关系代数基础知识、数据库设计方法和步骤。
对常见考点的准确把握会使考生避免盲目学习,从而能够轻松面对考试。二级考试中要求的知识点都是最基本的、最简单的,真正需要数据的存储结构有顺序、链接、索引等。
其允许插入与删除的一端称为栈顶,用指针(2)例1.82.3消息的组成包括:(①软件设计的基本原理是:(动态测试:是基本计算。
计算机二级公共基础知识总结
数据结构与算法
1.1 算法
算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括:
(1)可行性;
(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;
(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;
(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本基本概念
数据结构研究的三个方面:
(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;
(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;
(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:
(1)表示数据元素的信息;
(2)表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。等等
【【上 学 吧】】 有详细的资料 自己去看看
计算机二级公共基础知识是计算机中综合性知识,占30分。
包含的科目有数据结构,软件工程,算法设计与分析,数据库设计等。而这些科目都属于计算机专业必修课,也是一个程序员的必备理论基础。
我们知道二级的目标定位就是程序员的水平,所以这些科目都是必考内容。 那么如何备考呢?实际上很简单,只要买一本教育部考试中心出版的计算机二级考试公共基础知识大纲级指导书(一定是教育部出版发行的那种),回来抽个时间仔细研读一番就可以了,而且无须做大量练习题,因为二级要求不高,停留在概念的阶段。
复习时,不要将其看的太重,因为大家的水平都差不多,除非计算机专业的。 ========================================== 全国计算机等级考试二级公共基础知识考试大纲 基本要求 1。
掌握算法的基本概念。 2。
掌握基本数据结构及其操作。 3。
掌握基本排序和查找算法。 4。
掌握逐步求精的结构化程序设计方法。 5。
掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。 6。
掌握数据的基本知识,了解关系数据库的设计。 考试内容 一、基本数据结构与算法 1。
算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。 2。
数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。 3。
线性表的定义;线性表的顺序存储结构及其插入与删除运算。 4。
栈和队列的定义;栈和队列的顺序存储结构及其基本运算。 5。
线性单链表、双向链表与循环链表的结构及其基本运算。 6。
树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。 7。
顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。 二、程序设计基础 1。
程序设计方法与风格。 2。
结构化程序设计。 3。
面向对象的程序设计方法,对象,方法,属性及继承与多态性。 三、软件工程基础 1。
软件工程基本概念,软件生命周戎概念,软件工具与软件开发环境。 2。
结构化分析方法,数据流图,数据字典,软件需求规格说明书。 3。
结构化设计方法,总体设计与详细设计。 4。
软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。 5。
程序的调试,静态调试与动态调试。 四、数据库设计基础 1。
数据库的基本概念:数据库,数据库管理系统,数据库系统。 2。
数据模型,实体联系模型及E-R图,从E-R图导出关系数据模型。 3。
关系代数运算,包括集合运算及选择、投影、连接运算,数据库规范化理论。 4。
数据库设计方法和步骤:需求分析、概念设计、逻辑设计和物理设计的相关策略。 。
1、算法问题处理方案的正确而完整的描述称为【算法】。
算法分析的目的是,分析算法的效率以求改进。算法的基本特征是【可行性】、【确定性】、【有穷性】和拥有足够情报。
算法的有穷性是指:算法程序的运行时间是有限的。算法的复杂度是衡量算法好坏的度量,分为【时间复杂度】和【空间复杂度】。
时间复杂度是指执行算法所需要的【计算工作量】;算法的空间复杂度是指算法执行过程中所需的【存储空间】。算法时间复杂度或空间复杂度中的一项的值,没有办法推出另一项的值。
2、数据结构索引属于存储结构(物理结构)。循环队列属于【存储结构】。
数据的存储结构又称为物理结构,是数据的逻辑结构在计算机存储空间中的存放形式。一个逻辑结构可以有多种存储结构,且各种存储结构影响数据处理的效率。
程序执行的效率与数据的存储结构密切相关。数据结构分为线性结构和非线性结构,带链的队列属于【线性结构】。
线性表的存储结构主要分为顺序存储结构和链式存储结构。顺序存储结构的存储一定是连续的,链式存储的存储空间不一定是连续的。
有序线性表既可以采用顺序存储结构,也可以采用链式存储结构。队列是一种特殊的线性表,循环队列按照【先进先出】原则组织数据。
循环队列是队列的【顺序】存储结构。数据的独立性分为【物理独立】性和【逻辑独立性】。
当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序可以不用修改,称为【物理独立性】。3、栈和队列栈是一种特殊的线性表,是只能在一端进行插入和删除的线性表,特点是先进后出栈是【先进后出】的线性表;栈具有记忆作用;对栈的插入与删除操作中,不需要改变【栈底指针】。
假定让元素1、2、3、A、B依次入栈,则出栈的顺序是:B、A、3、2、1。栈与队列都是线性结构,树是非线性结构。
支持子程序调用的数据结构是【栈】。栈与队列的共同点是,都只允许在【端点处】插入和删除元素。
栈只能顺序存储的描述是错误的。栈可以有【顺序和链式】两种存储方式。
队列是允许在一段插入,在另一端进行删除的线性表,其特点是【先进先出】。循环队列中元素的个数是由队头指针和队尾指针共同决定。
循环队列的头指针为front,尾指针为rear,容量为maxSize,则循环队列中元素的个数是【 (rear-front+maxSize) mod maxSize】。4、线性链表线性链表是线性表的链式存储结构。
用链表表示线性表的优点是【便于插入和删除操作】。线性链表的存储空间不一定连续,且个元素的存储顺序是任意的。
5、树与二叉树在树结构中,一个结点所拥有的后件(继)的个数称为该结点的度,所有结点中最大的度称为树的度。二叉树各结点的度只可能取值0、1、2,不可能是其它值。
换言之,知道了度为1结点数量的前提下,叶子结点或度为2的结点中知道其一,就可以求出总的结点数。上述的计算公式,关键要能够应用,例如,深度为7的满二叉树,度为2的结点数量是多少?既然是满二叉树,叶子结点的数量就是第7层的结点数量,也就是26,可以算出叶子结点为64,因此度为2的结点数是63(叶子结点数减去1)。
二叉树的前序遍历、中序遍历、后续遍历:前中后三个词是相对于根来讲的,前序是【根-->左-->右】,中序是【左-->根-->右】,后续是【左-->右-->根】。具体操作为:先序遍历(D L R): 访问根结点,按先序遍历左子树,按先序遍历右子树。
中序遍历(L D R): 按中序遍历左子树,访问根结点,按中序遍历右子树。后序遍历(L R D): 按后序遍历左子树,按后序遍历右子树,访问根结点。
下面以中序遍历为例,来讲解实际的解题方法:对一棵树,将根结点下的左子树用一个椭圆圈起来,右子树也用一个椭圆圈起来。之后,在左子树上标记上1,在根结点标记上2,在右子树上标记上3。
对在左边椭圆内的左子树,现在把它单独拿出来分析。把它的左子树圈起来标上1.1,根结点标记上1.2,右子树标上1.3。
按照上述方法依次往下,直到树不能拆分,然后按照“左-->根--->右”的顺序写出结点的访问先后即可。6、查找技术对于长度为n的线性表,顺序查找最坏情况下需要比较n次。
(对数据是否有序没有要求)。◆ 顺序查找最好情况下查询次数是1,最坏情况下是n,平均为(1+n)/2。
对于长度为n的有序线性表,二分法最坏情况下只需要比较log2n次。(数据必须有序)能用二分法进行查找的是【顺序存储的有序线性表】。
7、排序技术对于长度为n的线性表,【冒泡排序、快速排序、简单插入排序、简单选择排序】这四种排序方式在最坏情况下的比较次数相同,都是【n(n-1)/2】。堆排序的效率最高,是【nlog2n】。
★★ 希尔排序最坏情况下需要次比较【n1.5】。希尔排序属于【插入类排序法】。
已知数据表A中每个元素距最终位置不远,为节省时间,应该采用的算法是【直接插入排序】。选择排序、插入排序、快速排序、归并排序中对内存要求最大的是【归并排序】。
第二部分 软件工程基础 1、软件工程基本概念软件是包括【程序】、【数据】及【相关文档】的完整集合,软件是一种逻辑产品。软件工程三要素包括【方法、工具。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:3.493秒