1二级公共基础知识授课老师:李瑞授课时间:2012年2月2一、涉及面广,但难度小公共基础知识考题特点及复习建议计算机等级二级理论考试中有关公共知识部分的题目共有15道,涉及算法及数据结构、程序设计基础、软件工程基础和数据库设计基础等四门学科,但是从整体上分析,考试中的考核内容的难度不大,考点也相对集中些。3二、考核重点为基本概念、基本方法和基本运算计算机等级二级理论考试中涉及的题目都是基本概念、基本方法和基本运算,考核以概念和认识性内容为主,理解性、应用性内容极少。4三、考核重点是数据结构和算法以下是对以往二级理论考试的大概统计:算法及数据结构:50%程序设计基础:12.5%软件工程基础:18.75%数据库设计基础:18.75%5四、六点复习及应试建议复习的关键是考生必须准确判断和掌握常见考点公共基础知识部分的知识点多、杂,考生在学习过程中应理清其中的脉络关系(即框架提纲),才能有效地组织和记住各知识点考生不要太追求灵活掌握该部分的内容,最好经历一个“先死后活、熟能生巧”的过程,这是多数考生常犯的另一种错误最后给大家一个答题技巧:“会就会,不会就不会”,不要拖时间,要考虑成本/效果的关系,为后面的题目提供时间。61、了解算法的基本概念和一些常用的算法,学会计算算法的时间复杂度;2、掌握数据结构的基本概念,并了解数据的逻辑结构和存储结构,学会利用图形的方式表示数据结构;学习目标与要求算法与数据结构:3、了解线性表的基本概念,并掌握线性表的顺序存储结构以及顺序存储的线性表的基本运算;4、了解栈和队列的基本概念,并掌握它们的基本运算;5、了解线性链表的基本概念,并掌握线性链表的基本运算,同时,了解循环链表的基本概念和基本操作;6、理解树的概念,尤其是二叉树的基本概念和相关性质,掌握二叉树的存储结构和遍历技术;7、掌握查找技术,学会利用顺序查找和二分查找在数列中查找指定的数据;8、学会利用相关的排序技术实现无序数列的排序操作。71、了解软件工程的基本概念;2、了解软件工程过程与软件的生命周期,以及软件工程的目标和原则;学习目标与要求软件工程:3、了解利用结构化分析法进行软件工程中的需求分析的方法,并了解需求分析的方法和需要完成的任务;4、了解数据流图的使用方法;5、了解如何利用结构化设计方法进行软件设计,并了解软件设计的一些常用工具;6、了解软件测试的目的和方法,以及软件测试的准则,了解常用的软件测试方法的区别和各自的功能与特点;7、了解程序调试的方法和原则。81、了解程序设计的方法,以及程序设计风格确立的一些因素,掌握程序设计的基本规则;2、了解结构化程序设计的基本原则,掌握结构化程序设计的基本结构与特点;学习目标与要求程序设计基础:3、了解面向对象的程序设计方法,并理解面向对象方法的一些基本概念。数据库系统:1、了解数据库系统的基本概念,以及数据库系统的发展;2、了解数据模型的基本概念,并对E-R模型、层次模型、网状模型和关系模型进行了解,并掌握关系模型的数据结构、关系的操作和数据约束等知识;3、了解关系模型的基本操作,掌握关系模型的基本运算及扩充运算;4、了解数据库的设计与管理,掌握数据库设计的几个阶段的方法和特点。13算法与数据结构一、算法(algorithm)1、算法的基本概念算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。它是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。算法具有有穷性、确定性、可行性、输入和输出(拥有足够的情报)等5个重要特性。14学习目标与要求2、算法的基本要素对数据对象的运算和操作:算术运算、逻辑运算、关系运算、数据传输算法中各操作之间的执行顺序;描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等;一个算法一般可以用顺序、选择、循环三种基本结构组合而成。算法的控制结构:15算法与数据结构3、算法设计的基本方法列举法归纳法递推递归(以简洁的形式设计和描述算法)减半递推技术回溯法16算法与数据结构二、算法的复杂度1、时间复杂度依据算法编制的程序在计算机上运行时所消耗的时间来度量。算法中基本操作重复执行次数n和算法执行时间同步增长,称作算法的时间复杂度。17算法与数据结构2、空间复杂度一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及某种数据结构所需要的附加存储空间。一个上机执行的程序除了需要存储空间来寄存本身所用指令、常数、变量和输入数据外,也需要一些对数据进行操作的工作单元和存储一些为实现计算所需信息的辅助空间。18算法与数据结构3、例题讲解算法的时间复杂度是指(C)A、执行算法程序所需要的时间B、算法程序的长度C、算法执行过程中所需要的基本运算次数D、算法程序中的指令条数算法的基本特征是可行性、确定性、【1】和拥有足够的情报。【答案】:有穷性算法的空间复杂度是指(D)A)算法程序的长度B)算法程序中的指令条数C)算法程序所占的存储空间D)执行过程中所需要的存储空间√√19算法与数据结构在计算机中,算法是指(B)A)加工方法B)解题方案的准确而完整的描述C)排序方法D)查询方法算法分析的目的是(D)A)找出数据结构的合理性B)找出算法中输入和输出之间的关系C)分析算法的易懂性和可靠性D)分析算法的效率以求改进算法的工作量大小和实现算法所需的存储单元多少分别称为算法的【1】。【答案】:时间复杂度和空间复杂度√√20算法与数据结构三、数据结构(DataStructure)1、数据结构研究的主要内容当今计算机应用的特点:1、所处理的数据量大且具有一定的关系;2、对其操作不再是单纯的数值计算,而更多地是需要对其进行组织、管理和检索。对数据的讨论不单单是数据本身,还要包括数据与数据之间的关系。21学生基本情况学号姓名性别出生年月......99070101李军男80.12......99070102王颜霞女81.2.......99070103孙涛男80.9......99070104单晓宏男81.3....................................特点:每个学生的信息占据一行,所有学生的信息按学号顺序依次排列构成一张表格;表中每个学生的信息依据学号的大小存在着一种前后关系,这就是我们所说的线性结构;对它的操作通常是插入某个学生的信息,删除某个学生的信息,更新某个学生的信息,按条件检索某个学生的信息等等。应用举例1——学籍档案管理假设一个学籍档案管理系统应包含如下表所示的学生信息。22应用举例2——家庭血缘关系图表示家庭成员的辈分关系,使用下图1-1所示的形式描述。31213212312321231213211图1-1家庭血缘关系图特点:在求解过程中,所处理的数据之间具有层次关系,这是我们所说的树形结构;对它的操作有:建立树形结构,输出最结点内容等等。应用举例3——制定教学计划在制定教学计划时,需要考虑各门课程的开设顺序。有些课程需要先导课程,有些课程则不需要,而有些课程又是其他课程的先导课程。比如,计算机专业课程的开设情况如下表所示:计算机专业学生的必修课程课程编号课程名称需要的先导课程编号C1程序设计基础无C2离散数学C1C3数据结构C1,C2C4汇编语言C1C5算法分析与设计C3,C4C6计算机组成原理C11C7编译原理C5,C3C8操作系统C3,C6C9高等数学无C10线性代数C9C11普通物理C9C12数值分析C9,C10,C123这种数据可以用下面的图来表示:课程先后关系的图形描形式:c1c9c4c2c12c10c11c5c3c6c7c8图1-2计算机专业必修课程开设先后关系241、数据的逻辑结构2、数据的存储结构3、数据的运算:检索、排序、插入、删除、修改等。A.线性结构B.非线性结构A.顺序存储B.链式存储线性表栈队树形结构图形结构数据结构的三个方面(亦称物理结构)数据结构的主要研究问题:252、基本概念和术语数据结构是一门研究数据组织、存储和运算的一般方法的学科。例:整数(1,2)、实数(1.1,1.2)字符串(Beijing)、图形、声音。计算机管理图书问题:在图书馆里有各种卡片:有按书名编排的、有按作者编排的、有按分类编排。如何将查询图书的这些信息存入计算机中既要考虑查询时间短,又要考虑节省空间。最简单的办法之一是建立一张表,每一本书的信息在表中占一行,如:26数据元素在计算机中的表示数据结构是一门研究数据组织、存储和运算的一般方法的学科。如何将0,1,2,3,4,5,6,7,8,9这10个数存放在计算机中能最快地达到你所需要的目的?目的不同,最佳的存储方方法就不同。从大到小排列:9,8,7,6,5,4,3,2,1,0输出偶数:0,2,4,6,8,1,3,5,7,9对数据结构中的节点进行操作处理(插入、删除、修改、查找、排序)27数据元素(DataElement)数据元素是数据的基本单位,即数据集合中的个体。有时一个数据元素可由若干数据项(DataItem)组成。数据项是数据的最小单位。数据元素亦称节点或记录。数据结构可描述为Group=(D,R)有限个数据元素的集合有限个节点间关系的集合2829数据结构可描述为Group=(D,R)例1:一年四季的数据结构可表示成B=(D,R)D={春,夏,秋,冬}R={(春,夏),(夏,秋),(秋,冬)}例2:家庭成员数据结构可表示成B=(D,R)D={父亲,儿子,女儿}R={(父亲,儿子),(父亲,女儿)}冬春夏秋父亲儿子女儿30数据结构也可用图形表示一年四季的数据结构可表示成家庭成员数据结构可表示成冬春夏秋父亲儿子女儿(概念:结点、前件、后件、根结点、叶子)31树形结构全校学生档案管理的组织方式计算机程序管理系统也是典型的树形结构。32HGFECDBA树形结构——结点间具有分层次的连接关系HBCDEFGA331423D={1,2,3,4}R={(1,2),(1,3),(1,4),(2,3),(3,4),(2,4)}213D={1,2,3}R={(1,2),(2,3),(3,2),(1,3)}图形结构——节点间的连结是任意的343、例题讲解数据处理的最小单位是(C)A)数据B)数据元素C)数据项D)数据结构数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及(A)A)数据的存储结构B)计算方法C)数据映象D)逻辑存储数据结构包括数据的逻辑结构、数据的【4】以及对数据的操作运算。【答案】物理结构(或存储结构)35线性结构与非线性结构:线性结构:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件。如:一年四季,26个英文字母非线性结构:线性以外的数据结构。如:反映家庭成员间辈分关系的数据结构算法与数据结构364、线性表(LinearList)学生成绩表(按成绩排列)86胡孝臣986110395刘忠赏9861107100张卓9861109成绩姓名学号线性表——结点间是以线性关系联结:线性表:具有线性结构的有限序列。数据元素在线性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的。线性表的定义:线性表是n个元素的有限序列,它们之间的关系可以排成一个线性序列:a1,a2,……,ai,……,an其中n称作表的长度,当n=0时,称作空表。线性表的特点:1、线性表中所有元素的性质相同。2、除第一个和最后一个数据元素之外,其它数据元素有且仅有一个前驱和一个后继。第一个数据元素无前驱,最后一个数据元素无后继。3、数据元素在表中的位置只取决于它自身的序号。在线性表上常用的运算有:初始化、求长度、取元素、修改、前插、删除、检索、排序3738线性表的顺序存储结构及其插入与删除操作特点:1、线性表中数据元素类型一致,只有数据域,存储空间利用率高。2、所有元素所占的存储空间是连续的。3