二级公共基础知识二级考试必备大全(经典珍藏版)
二级公共基础知识考点资料

第一章数据结构与算法笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
疑难解答:算法的工作量用什么来计算?算法的工作量用算法所执行的基本运算次数来计算,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模。
考点3 数据结构的定义考试链接:考点3在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为识记内容,读者还应该识记数据的逻辑结构和存储结构的概念。
考点4 线性结构与非线性结构考试链接:考点4在笔试考试中,虽然说不是考试经常考查的内容,但读者还是对此考点有所了解,在笔试考试中出现的几30%,主要是以填空题出现的形式出现,分值为2分,此考点为识记内容。
疑难解答:空的数据结构是线性结构还是非线性结构?一个空的数据结构究竟是属于线性结构还是属于非线性结构,这要根据具体情况来确定。
如果对该数据结构的算法是按线性结构的规则来处理的,则属于线性结构;否则属于非线性结构。
考点5 栈及其基本运算考试链接:考点5在笔试考试中,是一个必考的内容,在笔试考试中出现的几率为100%,主要是以选择的形式出现,分值为2。
二级公共基础知识考点

第一章数据结构与算法笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念.疑难解答:算法的工作量用什么来计算?算法的工作量用算法所执行的基本运算次数来计算,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模。
考点3 数据结构的定义考试链接:考点3在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为识记内容,读者还应该识记数据的逻辑结构和存储结构的概念.考点4 线性结构与非线性结构考试链接:考点4在笔试考试中,虽然说不是考试经常考查的内容,但读者还是对此考点有所了解,在笔试考试中出现的几率为,主要是以填空题出现的形式出现,分值为2分,此考点为识记内容。
疑难解答:空的数据结构是线性结构还是非线性结构?一个空的数据结构究竟是属于线性结构还是属于非线性结构,这要根据具体情况来确定。
如果对该数据结构的算法是按线性结构的规则来处理的,则属于线性结构;否则属于非线性结构。
考点5 栈及其基本运算考试链接:考点5在笔试考试中,是一个必考的内容,在笔试考试中出现的几率为100%,主要是以选择的形式出现,分值为2分,此考点为重点掌握内容,读者应该掌握栈的运算.:栈是按照"先进后出"或”后进先出”的原则组织数据,但是出栈方式有多种选择,在考题中经常考查各种不同的出栈方式。
二级公共基础知识完整版

二级公共基础知识完整版公共基础知识是一门涵盖众多领域的综合性学科,对于我们提升综合素质和应对各种考试都具有重要意义。
首先,我们来谈谈政治方面的基础知识。
政治是公共基础知识中的重要组成部分。
了解国家的政治制度、政党制度以及政治运行机制是必不可少的。
我国实行的是人民代表大会制度,这是我国的根本政治制度,保障了人民当家作主的权利。
同时,中国共产党领导的多党合作和政治协商制度也是我国政治制度的特色之一,它充分发挥了各民主党派和无党派人士在国家政治生活中的作用。
在法律方面,了解基本的法律概念和法律体系至关重要。
宪法作为国家的根本大法,具有最高的法律效力,规定了国家的根本制度和公民的基本权利义务。
此外,民法、刑法、行政法等部门法也与我们的日常生活息息相关。
比如,民法调整平等主体之间的人身关系和财产关系,当我们签订合同、处理财产纠纷时,就需要依据民法的相关规定。
经济知识也是公共基础知识的重要板块。
宏观经济和微观经济的概念及相关原理需要我们掌握。
宏观经济中,了解经济增长、通货膨胀、失业等经济现象的原因和应对策略,对于理解国家的经济政策具有重要意义。
微观经济方面,掌握供求关系、市场竞争等基本原理,有助于我们分析企业的经营决策和市场行为。
文化常识同样不可或缺。
包括我国的传统文化、现代文化以及世界文化。
我国有着悠久灿烂的传统文化,如儒家思想、诗词歌赋、书法绘画等,这些都是中华民族的瑰宝。
同时,了解现代文化的发展趋势和多元的世界文化,有助于我们开阔视野,增强文化交流与融合的能力。
科技知识在当今时代显得尤为重要。
从信息技术的飞速发展到生物技术的不断突破,科技的进步正在深刻地改变着我们的生活。
了解常见的科技成果、科技创新的趋势以及科技对社会发展的影响,能够让我们更好地适应这个科技日新月异的时代。
历史知识也是公共基础知识的一部分。
通过学习历史,我们可以了解国家和世界的发展脉络,从古代文明的兴衰到近代社会的变革,从重大历史事件到重要历史人物,历史为我们提供了宝贵的经验和启示。
最新二级公共基础知识(二级考试必备)大全(经典珍藏版)必打印复习

数据结构与算法一、基本概念:数据(Data):信息的载体,能够被计算机识别、存储和加工处理的物理符号。
包括文本类型的数据(如:字母、数字、汉字)和多媒体类型的数据(如:声音、动画、图像)。
数据元素(Data Element):是数据的基本单位,有时也称为元素、结点、顶点、记录,可以有若干个数据项(字段、域、属性)组成。
数据结构(Data Structure):指的是数据之间的相互关系,即数据的组织形式。
其包括三个部分:1、逻辑结构:数据元素之间的逻辑关系2、存储结构:数据元素及其关系在计算机存储器内的表示。
3、数据的运算(算法):即对数据施加的操作数据的逻辑结构有两大类:1、线性结构:特征是:若结构是非空集,则有且仅有一个开始结点和一个终端结点,并且所有结点最多只有一个直接前趋和一个直接后继。
例:一维数组、链表、栈、队列、串2、非线性结构:特征是:一个结点可能有多个直接前趋和直接后继。
例:多维数组、广义表、树、图数据的存储结构有以下基本存储方法:1、顺序存储方法:该方法是将逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现,一般通过数组来实现的。
2、链接存储方法:该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。
通过指针类型来实现的。
3、索引存储方法:该方法通常是在存储结点信息的同时,还建立附加的索引表,索引表中的每一项称为索引项,索引项的一般形式是:关键字,地址。
4、散列存储方法:该方法的基本思想是根据结点的关键字直接计算出该结点的存储地址,通过散列函数实现。
例:除余法散列函数、相乘取整法散列函数算法的基本特征:1、可行性(Effectiveness):针对实际问题而设计的算法,执行后能够得到满意的结果。
2、确定性(Definiteness):算法中的每一个步骤都必须有明确的定义,不允许出现歧义性。
3、有穷性(Finiteness):算法必须在有限时间内做完,即必须在执行有限个步骤之后终止。
二级公共基础知识部分.docx

二级公共基础知识部分(1)程序流程图中带有箭头的线段表示的是A)图元关系B) 数据流C)控制流I)) 调用关系答案:C)(2)葆构化程序设计的基木原则不包括A)多态性B) 自顶向下C)模块化D) 逐步求巒答案:A)(3)衣件设计屮模块划分M遵循的准则是A) 低内聚低耦合B) 高内聚低耦合0) 低内聚高耦合0) l'nj内聚in]耦介答案:B)(4) 在软件开发中,需求分析阶段产生的主要文档是A) 可行性分析报告B) 软件需求规格说明书C) 概要设计说明书D) 集成测试讣划答案:B)(5)必法的有穷性是指A)算法程序的运行时间是有限的B)算法程序所处理的数据量是有限的C)算法程序的长度是有限的0)算法只能被有限的用户使用答案:A)(6)对长度为n的线性表排序,在最坏情况下, 比较次数不是n (n-1) /2的排序方法是A)快速排序B) 冒泡排序C)直接插入排序D) 堆排序答案:D)(7)下列关于栈的叙述正确的是A)栈按〃先进先组织数据B)栈按〃先进后小r组织数据C)只能在栈底插入数据D)不能删除数据答案:B)(8)在数据库设计屮,将E-R图转换成关系数据模烈的过程属于A)需求分析阶段B)O逻辑设计阶段D)答案:C)(9)有三个关系R、S和T如下:R S山关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接D) 交答案:D)(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名), 选课SC(学号•课号•成绩),则表SC的关键字(键或码)为A)课号,成绩B) 学号,成绩C)学号,课号D) 学号.姓名,成绩答案:C)(11)一个栈的初始状态为空。
现将元索1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元索出栈的顺序是A)12345ABCDE B) EDCBA54321C) ABCDE12345 D) 54321EDCBA答案:B)(12)下列敘述中正确的是A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列屮,只需要队头指针就能反映队列屮元索的动态变化情况C)在循环队列屮,只需要队尾指针就能反映队列屮元素的动态变化情况D)循环队列中元索的个数是山队头指针和队尾指针共同决定答案:D)(13)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是A)0(n) B) 0(n)C)Odog-n) D) 0(nlog2n)答案:C)(14)下列叙述中正确的是A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对菲线性结构O顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间答案:A)(15)数据流图中带有箭头的线段表示的是A)控制流B) 事件驱动C)模块调用D) 数据流答案:D)(16)k软件开发屮,需求分析阶段可以使用的工具是A)N-S 图B) DFD 图C) PAD图D) 程序流程图答案:y)(17)和面向对象方法屮,不属于“对象”基本特点的是A)一致性B) 分类性C)多态性D) 标识唯一性答案:A)(18)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是A)一对一B) 一对多C) 多对一D) 多对多答案:B)(19)在数据管理技术发展的三个阶段屮,数据共享最好的是A)人工管理阶段B) 文件系统阶段C)数据库系统阶段D) 三个阶段相同答案:O(20)有三个关系R、S和T如下:山关系R S T,概念设汁阶段物理设计阶段z2J回NE zT为A)笛卡尔积B)交C)并I))自然连接答案:D)(21)下列叙述屮正确的是A)栈是“先进先出”的线性表B)队列是“先进后出”的线性表C)循环队列是非线性结构0)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构答案:D)(22)支持子程序调用的数据结构是A)栈B)树C)队列D)二叉树答案:A)(23)某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是A) 10 B) 8 C) 6D) 4答案:C)(24)下列排序方法屮,最坏情况下比较次数最少的是A)冒泡排序B)简单选择排序C)直接插入排序D)堆排序答案:0)(25)软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。
二级公共基础知识完整版

一、涉及面广,但难度小 计算机等级二级理论考试中有关公共知识部分的题 目共有15道,涉及算法及数据结构、程序设计基础、软件 工程基础和数据库设计基础等四门课程,尽管知识面大 ,但是从整体上分析,考核的内容难度不大,考点也相 对集中些。
1
二、考核重点为基本概念、基本方法
这种数据可以用下面的图来表示:
19
课程先后关系的图形描形式:
c4 c2 c1 c3 c12 c9 c10 c6 c11 c5 c7
c8
图 1-2 计算机专业必修课程开设先后关系
20
数据结构的主要 研究问题:
A.线性结构
1、数据的逻辑结构 数 据 结 构 的 三 个 方 面
线性表 栈 队 树形结构
4、了解栈和队列的基本概念,并掌握它们的基本运算; 5、了解线性链表的基本概念,并掌握线性链表的基本运算,同时,了解循 环链表的基本概念和基本操作; 6、理解树的概念,尤其是二叉树的基本概念和相关性质,掌握二叉树的存 储结构和遍历技术; 7、掌握查找技术,学会利用顺序查找和二分查找在数列中查找指定的数据; 8、学会利用相关的排序技术实现无序数列的排序操作。 5
数据结构可描述为
Group=(D,R)
有限个节点间关系的集合
24
数据结构可描述为 Group=(D,R)
例1:一年四季的数据结构可表示成 B=(D,R)
D={春,夏,秋,冬} R={(春,夏),(夏,秋),(秋,冬)}
例2:家庭成员数据结构可表示成 B=(D,R)
D={父亲,儿子,女儿} R={(父亲,儿子),(父亲,女儿)}
10
算
法
与
数
据
结
二级公共基础知识点总结

第四章数据库设计基础 1. 数据库系统(DBS) ,数据库(DB),数据库管理系统(DBMS) , 数据库管理员(DBA) ,数据库应用系统(DBAS) 2. 数据库管理系统(DBMS)是数据库系统(DBS)的核心。 3. 数据管理发展至今经历了三个阶段:人工管理阶段,文件系统阶段,数据库系统阶段。 4. 数据库系统的基本特点:数据的集成性,数据的高共享性与低冗余性,数据独立性,数据统一管理与 控制。 数据库系统的内部结构体系:三级模式及二级映射。 三级模式:外部级模式,概念级模式,内部级模式。 二级映射:外部级到概念级的映射,概念级到内部级的映射。 概念模式:数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。它处于中层,反映了 设计者的数据全局逻辑要求。 9. 外模式:是每个用户的数据视图,也就是每个用户所见到的数据模式。它处于最外层,反映了每个用 户对数据的要求,也称为用户模式或子模式。 10. 内模式:它处于最底层,反映了数据在计算机物理结构中的实际存储形式,也称为物理模式。 5. 6. 7. 8. 11. 数据模型:按不同的应用层次分成三种(概念模型,逻辑模型,物理模型) 。 12. E-R 模型:是一种常用的概念模型。该模型将现实世界的要求转化为实体、属性、联系等几个概念。 13. 联系:一对一的联系(例如,学校和校长) ,一对多的联系(例如,学生和宿舍房间) ,多对多(例如, 学生和可选课程,学生和老师)的联系。 14. E-R 模型的图示法: 实体集, 属性, 联系。 15. 数据库模型:层次模型(树形结构) ,网状模型(网状结构) ,关系模型(二维表结构) 。 16. 关系模型:采用二维表来表示, 17. 二维表一般满足的 7 个性质:元组个数有限性,元组的惟一性,元组的次序无关性,元组分量的原子 性,属性名的惟一性,属性名的次序无关性,分量值域的同一性。 18. 关系的“键”或“码” :具有标识元组、建立元组间联系等重要作用。 19. 在二维表中,凡能惟一标识元组的最小属性集称为该表的键或码。 20. 二维表中可能有若干个键,它们称为该表的候选键。选取其中一个作为用户使用的键,称为主键。 21. 关系模式支持子模式。关系子模式也是二维表结构,称为视图。 22. 关系操纵:包括四种查询、增加、删除、修改。 23. 关系中的数据约束:实体完整性约束,参照完整性约束,用户定义的完整性约束。 24. 25. 26. 27. 关系代数中,关系模型的基本运算:插入(R∪S) 、删除(R-S) 、修改((R-S)∪S’)、查询。 查询的三个操作:投影,选择,笛卡尔积(R×S). 关系代数中的扩充运算:交运算,除运算,连接与自然连接运算。 最常用的关系运算:选择,投影,自然连接,并运算,差运算,交运算。 (要求会运算)
二级公共基础知识考试必备,不看后悔

二级公共基础知识总结请认真背诵该资料,至少要看三遍,划横线和方框的都是重点!第一章数据结构与算法1.1 算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
两个之间没有联系的。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的存储结构有顺序、链接、索引等。
线性结构条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构。
1.3 线性表及其顺序存储结构线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素的所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
计算机二级公共基础知识(全)

1.1 算法考点1算法的基本概念计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
算法(algorithm)是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,同时是明确的;此顺序将在有限的次数后终止。
算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。
1算法的基本特征(1)可行性(effectiveness):针对实际问题而设计的算法,执行后能够得到满意的结果。
(2)确定性(definiteness):算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。
(3)有穷性(finiteness):算法必需在有限时间内做完,即算法必需能在执行有限个步骤之后终止。
(4)拥有足够的情报:要使算法有效必需为算法提供足够的情报当算法拥有足够的情报时,此算法才最有效的;而当提供的情报不够时,算法可能无效。
2算法的基本要素(1)算法中对数据的运算和操作:每个算法实际上是按解题要求从环境能进行的所有操作中选择合适的操作所组成的一组指令序列。
计算机可以执行的基本操作是以指令的形式描述的。
一个计算机系统能执行的所有指令的集合,称为该计算机系统的指令系统。
计算机程序就是按解题要求从计算机指令系统中选择合适的指令所组成的指令序列在一般的计算机系统中,基本的运算和操作有以下4类:①算术运算:主要包括加、减、乘、除等运算;②逻辑运算:主要包括“与”、“或”、“非”等运算;③关系运算:主要包括“大于”、“小于”、“等于”、“不等于”等运算;④数据传输:主要包括赋值、输入、输出等操作。
(2)算法的控制结构:一个算法的功能不仅仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。
算法中各操作之间的执行顺序称为算法的控制结构。
算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,而且也直接反映了算法的设计是否符合结构化原则。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
二级公共基础知识考点精讲.docx

二级公共基础学问考点精讲第1堂数据结构与算法考点1算法的困难度【考点精讲】1.算法的基本概念计算机算法为计算机解题的过程事实上是在实施某种算法。
算法的基本特征:可行性、确定性、有穷性、拥仃足够的情报。
2.算法困难度算法困难度包括时间困难度和空间困难度。
・・・♦・・・・・・考点逻辑结构和存储结构【考点精讲】1.逻辑结构数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。
数据的逻辑结构有两个要素:一是数据元素的集合,通常记为D;二是D上的关系,它反映了数据元素之间的前后件关系,通常记为R。
一个数据结构可以表示成B=(D,R)其中B表示数据结构。
为了反映D中各数据元素之间的前后件关系,一般用二元蛆来表示。
例如,假如把一年四季看作一个数据结构,则可表示成B=(D.R)D={春季,夏季,秋季,冬季}R={(春季,夏季),(夏季,秋季),(秋季,冬季)}2.存储结构数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。
由干数据元索在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为「表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构中,不仅要存放各数据元素的信息,还须要存放各数据元素之间的前后件关系的信息。
•种数据的逻辑结构依据须要可以表示成多种存储结构,沿用的存储结构有依次、链接等存储结构。
依次存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元索存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。
链式存储结构就是在每个结点中至少包含一个指针域,用指针来体现数据元素之间逻辑上的联系。
考点3线性结构和非线性结构【考点精讲】依据数据结构中各数据元素之间前后件关系的困难程度,一般将数据结构分为两大类型:线性结构与非线性结构。
假如一个非空的数据结构满意下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构与算法一、基本概念:数据(Data):信息的载体,能够被计算机识别、存储和加工处理的物理符号。
包括文本类型的数据(如:字母、数字、汉字)和多媒体类型的数据(如:声音、动画、图像)。
数据元素(Data Element):是数据的基本单位,有时也称为元素、结点、顶点、记录,可以有若干个数据项(字段、域、属性)组成。
数据结构(Data Structure):指的是数据之间的相互关系,即数据的组织形式。
其包括三部分:1、逻辑结构:数据元素之间的逻辑关系。
2、存储结构:数据元素及其关系在计算机存储器内的表示。
3、数据的运算(算法):即对数据施加的操作。
数据的逻辑结构有两大类:1、线性结构:特征:若结构是非空集,则有且仅有一个开始结点和一个终端结点,并且所有结点最多只有一个直接前趋和一个直接后继。
例:一维数组、链表、栈、队列、串2、非线性结构:特征:一个结点可能有多个直接前趋和直接后继。
例:多维数组、广义表、树、图数据的存储结构有以下基本存储方法:1、顺序存储方法:该方法是将逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现,一般通过数组来实现的。
2、链接存储方法:该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。
通过指针类型来实现的。
3、索引存储方法:该方法通常是在存储结点信息的同时,还建立附加的索引表,索引表中的每一项称为索引项,索引项的一般形式是:关键字,地址。
4、散列存储方法:该方法的基本思想是根据结点的关键字直接计算出该结点的存储地址,通过散列函数实现。
例:除余法散列函数、相乘取整法散列函数算法的基本特征:1、可行性(Effectiveness):针对实际问题而设计的算法,执行后能够得到满意的结果。
2、确定性(Definiteness):算法中的每一个步骤都必须有明确的定义,不允许出现歧义性。
3、有穷性(Finiteness):算法必须在有限时间内做完,即必须在执行有限个步骤之后终止。
4、拥有足够的情报时间复杂度:该算法执行的时间耗费,它是该算法所求解问题规模n的函数。
空间复杂度:该算法执行时所耗费的存储空间,它也是问题规模n的函数。
二、线性表:线性表(Linear List):是由n(n>=0)个数据元素(结点)a1,a2,a3,······,a n组成的有限序列。
对于非空的线性表,有且仅有一个开始结点a1,它没有直接前趋;有且仅有一个终端结点a n,它没有直接后继;其余的结点有且仅有一个直接前趋结点和一个直接后继结点。
线性表的存储结构:1、顺序存储(Sequential List):将线性表的结点按逻辑次序依次存放在一组地址连续的存储单元里,用这种方法存储的线性表称为顺序表。
2、链式存储(Linked List):逻辑上相邻的结点,物理上也相邻,存储单元可以是连续的,也可以是不连续的,在存储每个结点值的同时,还存储指向其后继结点的地址,用这种方法存储的线性表称为链表。
常见的运算有:表的初始化、求表的长度、取表中的第i个结点、查找结点、插入新的结点、删除结点。
顺序表和链表的比较:1、基于空间的考虑:A、顺序表的存储空间是静态分配的,而链表的存储空间是动态分配的。
B、顺序表占的存储空间必须是连续的,而链表占的存储空间可以是连续的,也可是不连续的C、顺序表存储密度为1,而链表中的每个结点,除了数据域外,还要额外的设置指针域,存储密度小于12、基于时间的考虑:A、在链表中的任何位置上进行插入和删除,只需要修改指针,而顺序表中平均将要移动近一半的结点。
B、顺序表是随机存取结构,它的存取时间为O(1),而链表需从头结点顺着链扫描链表。
总之,当线性表的长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表作为存储结构;当线性表的长度变化较大,难以估计其存储规模时,以采用链表作为存储结构为好。
若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;对于频繁进行插入和删除的线性表,宜采用链表做存储结构。
例:关于线性表的描述中,错误的是()A、线性表是线性结构B、线性表的顺序存储结构,必须占用一片连续的存储单元C、线性表是单链表D、线性表的链式存储结构,不必占用一片连续的存储单元用数组表示线性表的优点是()A、便于插入和删除操作B、便于随机存取C、可以动态地分配存储空间D、不需要占用一片连续的存储空间三、栈:栈(Stack):是限制仅在表的一端进行插入和删除运算的线性表,通常称插入、删除的这一端为栈顶(Top),另一端称为栈底(Bottom)。
当表中没有元素时称为空栈。
是一种后进先出的线性表,又称为LIFO表。
栈的基本运算有:栈的初始化、判栈空、判栈满、进栈、出栈等栈的存储:顺序存储、链式存储例:若进栈的输入序列是A、B、C、D、E,并且在它们进栈的过程中可以进行出栈操作,则不可能出现的出栈序列是()A、EDCBAB、DECBAC、DCEABD、ABCDE四、队列:队列(Queue):也是一种运算受限的线性表,它只允许在表的一端进行插入,而在另一端进行删除。
允许删除的一段称为队头(Front),允许插入的一段称为队尾(Rear)。
(类似于生活中的购物排队)。
是一种先进先出的线性表,又称为FIFO表。
队列的基本运算:队列的初始化、判队空、判队满、入队、出队队列的存储实现:顺序存储、链式存储例:一个队列的入队序列是1,2,3,4,则队列的输出序列是()A、4,3,2,1B、1,2,3,4C、1,4,3,2D、3,2,4,1五、串:串(String):是零个或多个字符组成的有限序列。
串中所包含的字符个数称为该串的长度。
串中任意个连续字符组成的子序列称为该串的子串,包含子串的串相应地称为主串注:空串是任意串的子串,任意串是其自身的子串串有串常量、串变量之分:1、串常量在程序中只能被引用但不能改变其值,即只能读不能写。
2、串变量其值是可以改变的。
串的基本运算:求串长、串复制、串联接、串比较、字符定位、六、树(非线性结构):树(Tree):是n(n>=0)个结点的有限集T,T(n=0)为空时称为空树,否则它满足如下两个条件:1、有且仅有一个特定的称为根(Root)的结点2、其余的结点可分为m(m>=0)个互不相交的子集T1,T2,…….,Tm,其中每个子集本身又是一棵树,并称其为根的子树(Subtree)。
在树的树形图表示中,结点通常是用圆圈表示的,结点的名字一般是写在圆圈旁边,有时亦可写在圆圈内。
度(Degree):一个结点拥有的子树数称为该结点的度。
一棵树的度是指该树中结点的最大度数。
叶子(Leaf):度为零的结点称为叶子或终端结点分支结点(Node):度不为零的结点称为分支结点。
树中某个结点的子树之根称为该结点的孩子(Child)结点或子结点,相应的该结点称为孩子结点的双亲(Parents)结点或父结点。
同一个双亲的孩子称为兄弟结点(Sibling)结点的层数(Level)是从根起算,设根的层数为1,其余结点的层数等于其双亲结点的层数加1.树中结点的最大层数称为树的高度(Height)或深度(Depth).森林(Forest):是m(m>=0)棵互不相交的树的集合。
删去一棵树的根,就得到一个森林,反之,加上一个结点作树根,森林就变为一棵树。
二叉树(Binary Tree):是n(n>=0)个结点的有限集,它或者是空集(n=0),或者由一个根结点及两棵互不相交的、分别称作这个根的左子树和右子树的二叉树组成。
二叉树中,每个结点最多只能有两棵子树,并且有左右之分。
二叉树的五种基本形态:例:具有3个结点的二叉树有几种形态。
满二叉树(Full Binary Tree):一棵深度为k且有2k-1个结点的二叉树称为满二叉树完全二叉树(Complete Binary Tree):若一棵二叉树至多只有最下面的两层上结点的度数可以小于2,并且最下一层上的结点都集中在该层最左边的若干位置上,则此二叉树称为完全二叉树。
二叉树的性质:性质1:二叉树第i层上的结点数目最多为2i-1(i>=1)性质2:深度为k的二叉树至多有2k-1个结点(k>=1)性质3:在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1 性质4:具有n个结点的完全二叉树的深度为[lgn]+1(取下整) 或[lg(n+1)](取上整)。
例:一棵二叉树的结点数为18个,求它的最小高度已知度为2的结点数为15个,求叶子结点数二叉树的遍历:遍历(Traversal):是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。
前序遍历:(又称为先序遍历、先根遍历)若二叉树为空,则执行空操作。
否则:1、访问根结点;2、前序遍历左子树;3、前序遍历右子树。
中序遍历:(又称为中根遍历)若二叉树为空,则执行空操作。
否则:1、中序遍历左子树;2、访问根结点;3、中序遍历右子树。
后序遍历:(又称为后根遍历)若二叉树为空,则执行空操作。
否则:1、后序遍历左子树;2、后序遍历右子树;3、访问根结点。
例:已知一棵二叉树的中序遍历序列是:FDGBACHE,其后序遍历序列是:FGDBHECA 求其前序遍历序列。
一棵二叉树的前序遍历序列为ABDGCFK,中序遍历序列为DGBAFCK,则结点的后序遍历序列是()A、ACFKDBGB、GDBFKCAC、KCFAGDBD、ABCDFKG七、排序(Sort):所谓排序,就是指整理文件中的记录,使之按关键字递增(或递减)次序排列起来。
冒泡排序(Bubble Sorting):通过对待排序序列从后向前或从前向后(从下标较大的元素开始),依次比较相邻元素的排序码,若发现逆序则交换,使排序码较大的元素逐渐从前部移向后部或较小的元素逐渐从后部移向前部(从下标较大的单元移向下标较小的单元)。
直接选择排序(Selection Sorting):扫描整个线性表,从中选出最小的元素,将它交换到表的最前面;然后对剩下的子表采用同样的方法,直到子表空为止。
直接插入排序(Insertion Sorting):每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。
快速排序(Quick Sorting):任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。