二级公共基础知识 数据结构与算法
计算机二级C语言(公共基础知识基本数据结构与算法)课件
软件工程基础
软件工程是指导计算机软件开发和维护的一门工程学科,采用工程化的 概念、原理、技术和方法,以及合适的开发工具及开发软件,来生产高 质量的软件并对其进行维护。
软件工程的目标是提高软件的质量和生产率,最终实现软件的可靠性、 易用性和可维护性。
计算机二级C语言(公 共基础知识基本数据
结构与算法)课件
目录
• 基础知识 • 数据结构 • 算法 • 公共基础知识
01
基础知识
C语言概述
C语言是一种通用的、过程式的计算机程序设计语言,广泛应用于系统软 件、嵌入式软件、游戏开发等领域。
C语言具有高效、灵活、可移植性强的特点,能够直接对硬件进行操作, 因此被视为一种底层语言。
C语言由丹尼斯·里奇于1972年设计,并随着UNIX操作系统的普及而流行 起来。
C语言基础语法
数据类型
C语言支持多种数据类型,包括整型、浮点型、字符型等,每种类型都有其特定的取值范围和存 储方式。
运算符
C语言提供了丰富的运算符,包括算术运算符、关系运算符、逻辑运算符等,用于进行各种运算 和逻辑判断。
02
03
数据结构是算法的载体,算法在 数据结构上运作。数据结构的合 理选择能提高算法的效率,算法 的操作对象是数据结构。
数据结构主要研究数据的逻辑结 构和数据的物理结构,以及数据 的基本操作和算法。
算法是对特定问题求解步骤的一 种描述,能够对一定规范的输入 进行输出。
计算机系统组成
计算机系统由硬件和软件组成。硬件包括运算器 、控制器、存储器、输入输出设备等;软件包括 系统软件和应用软件。
快速排序
二级公共基础知识第1章
(4)拥有足够的情报 算法具有0个或多个输入。 例如:A=3,B=5,求A+B+C的值。 由于对C没有进行初始化,无法计算正确的答案。
限定只能在表的一端进行插入,在表的另一端进行 删除的特殊的线性表 。此种结构称为“先进先出” (FIFO , First In First Out)或“后进后出” (LILO , Last In Last Out) 。
可以作为一日三餐的数据元素; 方向的名称——东、南、西、北
可以作为方向的数据元素
数据——是需要处理的数据元素的集合,一般来说
这些数据元素,具有某个共同的特征。
结构——就是“关系”,是集合中各个数据元素之
间存在的某种关系(联系)。
结构通常分为4类:
线性结构
树形结构
网状结构
集合
在数据处理领域中,通常把两两数据元素之间的关系 用前后件关系(或直接前驱与直接后继)来描述。 例如:在考虑一日三餐的时间顺序关系时,
1 45 2 62 3 82 4 20 5 64 27 6 56 7 75 8 …… 9 …… 10 ……
1 45 2 62 3 82 4 20 5 64 6 27 7 56 8 75 9 …… 10 ……
插入算法的时间复杂度
假设线性表中含有n个数据元素,在进行插入 操作时,若假定在n+1个位置上插入元素的可能 性均等,则平均移动元素的个数为:
矩阵是一个比较复杂的线性表。在矩阵中,既可 以把每一行看成一个数据元素,也可以把每一列 看成一个数据元素。其中每一个数据元素实际上 又是一个简单的线性表。
计算机二级公共基础知识数据结构与算法
计算机二级公共基础知识数据结构与算法第一章数据结构与算法1.1 算法1、算法的基本特征(1)可行性。
(2)确定性。
(3)有穷性。
(4)拥有足够的情报。
*:综上所述,所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
2、算法复杂度主要包括时间复杂度和空间复杂度。
(1)算法时间复杂度:指执行算法所需要的计算工作量,可以用执行算法的过程中所需基本运算的执行次数来度量。
(2)算法空间复杂度:指执行这个算法所需要的内存空间。
1.2 数据结构的基本概念1、数据结构是指相互有关联的数据元素的集合。
2、数据结构主:(1) 数据的逻辑结构:是指反映数据元素之间的逻辑关系的数据结构。
数据的逻辑结构有两个要素:数据元素的集合,记作D,数据之间的前后件关系,记作R,则数据结构B=(D,R)(2) 数据的存储结构:在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。
常用的存储结构有顺序、链接等存储结构。
顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。
链式存储结构就是在每个结点中至少包含一个指针域,用指针来体现数据元素之间逻辑上的联系。
3、数据结构的图形表示在结构图中,没有前件的结点称为根结点,没有后件的结点称为终端结点,也称叶子结点。
4、数据结构分为两大类型:线性结构和非线性结构。
(1)线性结构(非空的数据结构)条件:1)有且只有一个根结点;2)每一个结点最多有一个前件,也最多有一个后件。
*:常见的线性结构有线性表、栈、队列和线性链表等。
(2)非线性结构:不满足线性结构条件的数据结构。
*:常见的非线性结构有树、二叉树和图等。
1.3 线性表及其顺序存储结构1、线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
线性表是由n(n?0)个数据元素组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。
计算机等级考试--二级公共基础知识汇总
计算机等级考试二级公共基础知识第1章数据结构与算法1.1 算法1.1.1 算法的基本概念算法是指对解题方案的准确而完整的描述。
简单地说,就是解决问题的操作步骤。
值得注意的是,算法不等于数学上的计算方法,也不等于程序。
在用计算机解决实际问题时,往往先设计算法,用某种表达方式(如流程图)描述,然后再用具体的程序设计语言描述此算法(即编程)。
在编程时由于要受到计算机系统运行环境的限制,因此,程序的编制通常不可能优于算法的设计。
1.1.1.1 算法的基本特征一般来说,一个算法应具有以下4个基本特征。
(1)可行性(Effectiveness):算法在特定的执行环境中执行,应当能够得出满意的结果,即必须有一个或多个输出。
(2)确定性(Definiteness):算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。
(3)有穷性(Finiteness):算法必需在有限时间内做完,即算法必需能在执行有限个步骤之后终止。
(4)拥有足够的情报:要使算法有效必需为算法提供足够的情报。
当算法拥有足够的情报时,此算法才是有效的;而当提供的情报不够时,算法可能无效。
1.1.1.2 算法的基本要素通常,一个算法由两种基本要素组成。
● 对数据对象的运算和操作;● 算法的控制结构,即运算或操作时间的顺序。
(1)算法中对数据的运算和操作在一般的计算机系统中,基本的运算和操作有以下4类,如表1-1所示。
(2一个算法的功能不仅仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。
算法中各操作之间的执行顺序称为算法的控制结构。
算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,而且也直接反映了算法的设计是否符合结构化原则。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
1.1.1.3 算法设计的基本方法虽然设计算法是一件非常困难的工作,但是算法设计也不是无章可循,人们经过实践,总结和积累了许多行之有效的方法。
二级基础知识数据结构与算法
入栈、退栈、读栈顶元素
❖ 2、队列
一个出口一个入口仅有一个元素宽度的巷道, 先进先出
队列移动,循环标志s 0空 入队;上溢、退队;下溢
1.5 线性链表
❖ 线性表的缺点:插入删除上的复杂性、空间 的连续性(预留、不够)
结点:元素+指针
Head---a1 *a2---a2 *a3…an null ❖ 双链表 ❖ 栈与队列的链表实现 ❖ 链表的插入删除 改变前后元素的指针指向,可以不改变位置 ❖ 循环链表:增加一个表头结点数据不定,最后
❖ 5、二叉树的遍历 遍历:不重复访问所有结点 前序:根、左、右 中序:左、根、右 后序:左、右、根 ❖ 注意从上到下均按上述顺序 ❖ 例1.33b左 前:abdhiejkcflg ;中:hdibjekalfcg 后:hidjkeblfgca
1.7 查找技术
❖ 1、顺序查找 无序表、链表
❖ 2、二分法查找 有序表,最多log2N次
一指针指向表头
1.6 树与二叉树
❖ 1、树 层次结构
根结点、叶子结点、子结点、深度(层数)、 节点的度(分叉数)
了解表达式的树表示
❖ 2、二叉树 分叉数少于等于2(左右子树),一个根节点是
二叉树
❖ 性质
A、k层节点少于2^(k-1) B、m深度的树节点总数为2^m-1
C、度为2的比度为0节点多一个 d、节点为n,则深度为int(log2 N)+1 ❖ 3、满二叉树与完全二叉树 满二叉树 不缺枝 完全二叉树:仅缺右子树 注意完全二叉树节点编号间关系 ❖ 4、二叉树的存储 采用双链表
全国计算机等级考试
二级基础知识
第一章 数据结构与算法
计算机二级 公共基础知识第1章 数据结构与算法
第1章数据结构与算法(13%)重要考点提示:1)算法复杂度。
2)栈、队列、线性链表的基本概念3)二叉树的存储结构4)线性表、树的结点计算和遍历5)冒泡排序的最坏次数计算一、算法考点1 算法的基本概念记一些概念即可1、算法:对解题方案的准确而完整的描述。
重点2、算法的基本特征重点①可行性针对实际问题设计的算法,人们总是希望能够得到满意的结果。
但一个算法又总是在某个特定的计算工具上执行的,因此算法在执行过程中往往要受到计算工具的限制,使执行结果产生偏差。
算法与计算公式是有差别的,在设计一个算法时,必须考虑它的可行性,否则将得不到满意的结果。
②确定性算法的确定性是指算法中的每一个步骤必须有明确的定义,不能产生歧义。
这一性质也反映了算法与数学公式的明显差别。
③有穷性算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
算法的有穷性还包括合理的执行时间的含义,因为如果一个算法需要执行千万年,显然失去了价值。
④拥有足够的情报一个算法是否有效,还取决为算法所提供的情报是否足够。
通常,算法中的各种运算总是要施加到各个运算对象上,而这些运算对象又可能具有某种初始状态,这是算法执行的起点或是依据。
因此,一个算法执行的结果总是与输入的初始数据有关,不同的输入将会有不同的结果输出。
当输入不够或输入错误时,算法本身也就无法执行或导致执行有错。
一般来说,当算法拥有足够的情报时,此算法才是有效的,而当提供的情报不够时,算法可能无效。
有的认为是:可行性、确定性、有穷性、有输入、有输出。
3、算法的基本要素重点①算法中对数据的运算和操作②算法的控制结构可理解为:一个算法是由控制结构(顺序、分支和循环三种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。
即:算法= 控制结构+ 原操作(固有数据类型的操作)解释:了解①算法中对数据的运算和操作每个算法实际上是按解题要求,从环境能进行的操作中选择合适的操作所组成的一组指令序列。
计算机二级公共基础知识完整
第一章数据结构及算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分常常考查的是算法困难度, 数据结构的概念, 栈, 二叉树的遍历, 二分法查找,读者应对此部分进行重点学习。
具体重点学习知识点:1.算法的概念, 算法时间困难度及空间困难度的概念2.数据结构的定义, 数据逻辑结构及物理结构的定义3.栈的定义及其运算, 线性链表的存储方式4.树及二叉树的概念, 二叉树的基本性质, 完全二叉树的概念, 二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应当了解算法中对数据的基本运算。
计算机解题的过程事实上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性, 确定性, 有穷性, 拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的限制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算, 逻辑运算, 关系运算和数据传输。
(2)算法的限制结构:算法中各操作之间的执行依次称为算法的限制结构。
描述算法的工具通常有传统流程图, N-S结构化流程图, 算法描述语言等。
一个算法一般都可以用依次, 选择, 循环3种基本限制结构组合而成。
考点2 算法困难度考试链接:考点2在笔试考试中,是一个常常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应当识记算法时间困难度及空间困难度的概念。
1.算法的时间困难度算法的时间困难度是指执行算法所须要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明运用肯定的时间单位衡量算法的效率是不合适的。
撇开这些及计算机硬件, 软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依靠于问题的规模(通常用整数n表示),它是问题规模的函数。
计算机二级公共基础知识考点
计算机二级公共基础知识考点第1章数据结构与算法考点1:算法的基本概念所谓算法是指解题方案的准确而完整的描述。
对于一个问题,如果可以通过一个计算机程序,在有限的存储空间内运行有限长的时间而得到正确结果,则称这个问题是算法可解的。
算法不等于程序,也不等于计算方法。
1 算法的基本特征(1)可行性(effectiveness):针对实际问题而设计的算法,执行后能够得到满意的结果。
(2)确定性(definiteness):算法中的每一个步骤都必须有明确的定义,不允许有模棱两可的解释和多义性。
(3)有穷性(finiteness):算法必须的有限时间内做完,即算法必须能在执行有限个步骤之后终止。
(4)拥有足够的情报:要使算法有效必须为算法提供足够的情报。
当算法拥有足够的情报时,此算法才是有效的;当提供的情报不够时,算法可能无效。
综上所述,算法是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,同时是明确的,此顺序将在有限的次数后终止。
2.算法的基本要素(1)算法中对数据的运算和操作:每个算法实际上是按解题要求从环境能进行的所有操作中选择合适的操作所组成的一组指令序列。
基本的运算和操作有以下4列类:①算术运算(包括加、减、乘、除等);②逻辑运算(包括“与”、“或”、“非”等运算);③关系运算(包括“大于”、“小于”、“等于”、“不等于”等);④数据传输(包括赋值、输入、输出等操作)。
(2)算法的控制结构:一个算法的功能不仅仅取决非于所选用的操作,而且还与各操作间的执行顺序有关。
算法中各操作之间的执行顺序称为算法的控制结构。
算法的控制结构给出了算法的的框架,它不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。
描述算法的工具通常有传统流程、N-S结构化流程图和算法描述评议等。
一个算法一般都以用顺序、选择和循环3种基本控制结核组合而成。
3.算法设计的基本方法计算机算法不同于人工处理的方法,工程上常用的算法有列举法和归纳法。
计算机二级公共基础知识重点
计算机二级公共(gōnggòng)基础知识重点计算机二级公共(gōnggòng)基础知识一、数据结构(shù jù jiéɡòu)与算法1.1.1 数据结构(shù jù jiéɡòu)的基本概念数据(shùjù)结构指相互有关联的数据元素的集合。
数据逻辑结构反映数据元素之间的逻辑关系;存储结构为数据的逻辑结构在计算机存储空间中的存放形式,分为顺序存储、链式存储、索引存储和散列存储4种方式。
数据结构按各元素之间前后件关系的复杂度可划分为如下两种:(1)线性结构:有且只有一个根节点,且每个结点最多有一个直接前驱和一个直接后继的非空数据结构。
(2)非线性结构:不满足线性结构的数据结构。
1.1.2 算法1. 算法的基本概念(1)概念:算法是指解题方案的准确而完善的描述。
(2)基本特征:可行性、确定性、有穷性、拥有足够的情报。
(3)基本要素:对数据对象的运算和操作、算法和控制结构。
(4)设计的基本方法:列举法、归纳法、递推法、递归法、减半递推技术、回溯法。
2. 算法的复杂度(1)算法的时间复杂度:执行算法所需要的计算工作量。
(2)算法的空间复杂度:执行算法所需的内存空间。
1.1.3 线性表及其顺序存储结构1. 线性表的基本概念线性结构又称线性表,线性表是最简单也是最常用的一种数据结构。
2. 线性表的顺序存储结构顺序存储结构的特点(tèdiǎn)如下:(1)元素所占的存储空间必须(bìxū)连接。
(2)元素(yuán sù)在存储空间的位置是按逻辑顺序依次存放的。
3. 线性表的插入(chā rù)运算若在第i 个元素之前插入一个新元素,可先把原来第i 个结点至第n 个结点依次往后移一个元素位置(wèi zhi)。
然后把新结点放在第i 个位置上,最后修正线性表的结点个数。
二级公共基础知识第一章数据结构与算法
⼀.算法的基本概念计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可⾏性,确定性,有穷性,拥有⾜够的情报。
2.算法的基本要素:算法中对数据的运算和操作、算法的控制结构。
3.算法设计的基本⽅法:列举法、归纳法、递推、递归、减半递推技术、回溯法。
4.算法设计的要求:正确性、可读性、健壮性、效率与低存储量需求⼆.算法的复杂度1.算法的时间复杂度:指执⾏算法所需要的计算⼯作量2.算法的空间复杂度:执⾏这个算法所需要的内存空间三.数据结构的定义1.数据的逻辑结构:反映数据元素之间的关系的数据元素集合的表⽰。
数据的逻辑结构包括集合、线形结构、树形结构和图形结构四种。
2.数据的存储结构:数据的逻辑结构在计算机存储空间种的存放形式称为数据的存储结构。
常⽤的存储结构有顺序、链接、索引等存储结构。
四.数据结构的图形表⽰:在数据结构中,没有前件的结点称为根结点;没有后件的结点成为终端结点。
插⼊和删除是对数据结构的两种基本运算。
还有查找、分类、合并、分解、复制和修改等。
五.线性结构和⾮线性结构根据数据结构中各数据元素之间前后件关系的复杂程度,⼀般将数据结构分为两⼤类型:线性结构和⾮线性结构。
线性结构:⾮空数据结构满⾜:有且只有⼀个根结点;每个结点最多有⼀个前件,最多只有⼀个后件。
⾮线性结构:如果⼀个数据结构不是线性结构,称之为⾮线性结构。
常见的线性结构:线性表、栈、队列六.线性表的定义线性表是n 个元素构成的有限序列(A1,A2,A3……)。
表中的每⼀个数据元素,除了第⼀个以外,有且只有⼀个前件。
除了最后⼀个以外有且只有⼀个后件。
即线性表是⼀个空表,或可以表⽰为(a1,a2,……an), 其中ai(I=1,2,……n)是属于数据对象的元素,通常也称其为线性表中的⼀个结点。
⾮空线性表有如下⼀些特征:(1)有且只有⼀个根结点a1,它⽆前件;(2)有且只有⼀个终端结点an,它⽆后件;(3)除根结点与终端结点外,其他所有结点有且只有⼀个前件,也有且只有⼀个后件。
最新全国计算机等级考试 二级公共基础知识 第一章 数据结构与算法PPT课件
2021/1/23
25
1.2 数据结构的基本概念
例题6 家庭成员数据结构表示为
B= (D,R) D={父亲,儿子,女儿} R={ (父亲,儿子) ,(父亲,女儿)}
2021/1/23
26
1.2 数据结构的基本概念
例题7 n维向量的数据结构
X= (X1,X2,X3, …,Xn) D={ X1,X2,X3, …,Xn } R={ (X1,X2 ),( X2,X3 ), …, (Xn-1,Xn ) }
2021/1/23
11
2005年9月试题填空2
算法复杂度主要包括时间复杂度 和 【2】 复杂度。
2021/1/23
12
1.1 算法
算法工作量=f(n) n是问题的规模
2021/1/23
13
1.1 算法
分析算法的工作量 平均性态 最坏情况复杂性
2021/1/23
14
1.1 算法
例题2 采用顺序搜索法,在长度为n的一维数组中
出现的概率为q/n,不出现的概率为1-q,则平均查找次 数为 A(n)=1×q/n+2 ×q/n+3 ×q/n+……+n ×q/n+n ×(1-q)
最坏情况为n
2021/1/23
16
1.1 算法
2.算法的空间复杂度 算法的空间复杂度是指执行这个算法所需
要的内存空间。
算法程序所占用的空间 输入的初始数据所占的空间 算法执行过程中所需的额外空间
2021/1/23
27
1.2 数据结构的基本概念
2. 数据的存储结构
数据的逻辑结构在计算机存储空间中的存 放形式称为数据的存储结构。
不仅要存储数据的信息,还要存储数据元 素关系的信息。
计算机二级-公共基础知识点
计算机等级考试—公共基础第一章 数据结构与算法§1.1 算法1.算法的定义:是指解题方案的准确而完整的描述。
(算法≠程序,程序的设计不可能优于算法的设计,需要考虑计算机本身限制)2.算法的基本特征:可行性(可运行,可得出正确结果)、确定性、有穷性(无死循环)、足够的情报(IPO)。
3.算法的基本要素:①对数据对象的运算和操作:算术运算、逻辑运算、关系运算、数据传输。
②算法的控制结构:a.算法中各操作之间的执行顺序;b.描述算法的工具通常有传统流程图、N-S结构化流程图 (盒图)、算法描述语言等;c.一个算法一般可以用顺序、选择(分支)、循环(重复)三种基本结构组合而成。
4.算法的时间和空间复杂度:①时间复杂度:是指执行算法所需要的计算工作量≠计算时间,可以用算法所执行的基本运算次数度量。
②空间复杂度:是指执行算法所需要的内存空间。
包括算法程序、输入的初始数据以及算法执行过程中需要的额外空间。
③算法的时间复杂度和算法的空间复杂度相互独立。
§1.2 数据结构的基本概念1.数据:需要处理的数据元素的集合,一般来说,这些数据元素,具有某个共同的特征。
a.数据元素是数据的基本单位,即数据集合中的个体。
b.有时一个数据元素可有若干数据项组成。
数据项是数据的最小单位。
2.结构:是集合中各个数据元素之间存在的某种关系(或联系)。
3.数据结构:是指相互有关联的数据元素的集合。
4.数据结构的分类:①逻辑结构:线性结构(线性表、栈、队列);非线性结构(树、图)。
②存储结构:顺序存储;链式存储。
③运算:插入、删除、查找、排序。
5.逻辑结构:反应数据元素间的逻辑关系(即前后件关系)的数据结构。
①线性结构(线性表):(举例:春→夏→秋→冬)a.有且只有一个根节点,它无前件;b.每一个节点最多有一个前件,也最多有一个后件。
②非线性结构:a.不满足以上两个条件的数据结构就称为非线性结构;b.非线性结构主要是指树形结构和网状结构。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
即算法的工作量=f(n)2.算法的空间复杂度算法的空间复杂度是指执行这个算法所需要的内存空间。
一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。
其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。
如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。
在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。
疑难解答:算法的工作量用什么来计算?算法的工作量用算法所执行的基本运算次数来计算,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模。
1.2数据结构的基本概念考点3 数据结构的定义考试链接:考点3在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为识记内容,读者还应该识记数据的逻辑结构和存储结构的概念。
数据结构作为计算机的一门学科,主要研究和讨论以下三个方面:(1)数据集合中个数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据元素进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据:是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。
数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。
数据的逻辑结构有两个要素:一是数据元素的集合,通常记为D;二是D上的关系,它反映了数据元素之间的前后件关系,通常记为R。
一个数据结构可以表示成B=(D,R)其中B表示数据结构。
为了反映D中各数据元素之间的前后件关系,一般用二元组来表示。
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。
由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。
一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构。
而采用不同的存储结构,其数据处理的效率是不同的。
因此,在进行数据处理时,选择合适的存储结构是很重要的。
考点4 线性结构与非线性结构考试链接:考点4在笔试考试中,虽然说不是考试经常考查的内容,但读者还是对此考点有所了解,在笔试考试中出现的几率为30%,主要是以填空题出现的形式出现,分值为2分,此考点为识记内容。
根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。
如果一个非空的数据结构满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
则称该数据结构为线性结构。
线性结构又称线性表。
在一个线性结构中插入或删除任何一个结点后还应是线性结构。
如果一个数据结构不是线性结构,则称之为非线性结构。
疑难解答:空的数据结构是线性结构还是非线性结构?一个空的数据结构究竟是属于线性结构还是属于非线性结构,这要根据具体情况来确定。
如果对该数据结构的算法是按线性结构的规则来处理的,则属于线性结构;否则属于非线性结构。
1.3栈及线性链表考点5 栈及其基本运算考试链接:考点5在笔试考试中,是一个必考的内容,在笔试考试中出现的几率为100%,主要是以选择的形式出现,分值为2分,此考点为重点掌握内容,读者应该掌握栈的运算。
1.栈的基本概念栈是限定只在一端进行插入与删除的线性表,通常称插入、删除的这一端为栈顶,另一端为栈底。
当表中没有元素时称为空栈。
栈顶元素总是后被插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才能被删除的元素。
栈是按照"先进后出"或"后进先出"的原则组织数据的。
2.栈的顺序存储及其运算用一维数组S(1∶m)作为栈的顺序存储空间,其中m为最大容量。
在栈的顺序存储空间S(1∶m)中,S(bottom)为栈底元素,S(top)为栈顶元素。
top=0表示栈空;top=m表示栈满。
栈的基本运算有三种:入栈、退栈与读栈顶元素。
(1)入栈运算:入栈运算是指在栈顶位置插入一个新元素。
首先将栈顶指针加一(即top 加1),然后将新元素插入到栈顶指针指向的位置。
当栈顶指针已经指向存储空间的最后一个位置时,说明栈空间已满,不可能再进行入栈操作。
这种情况称为栈"上溢"错误。
(2)退栈运算:退栈是指取出栈顶元素并赋给一个指定的变量。
首先将栈顶元素(栈顶指针指向的元素)赋给一个指定的变量,然后将栈顶指针减一(即top减1)。
当栈顶指针为0时,说明栈空,不可进行退栈操作。
这种情况称为栈的"下溢"错误。
(3)读栈顶元素:读栈顶元素是指将栈顶元素赋给一个指定的变量。
这个运算不删除栈顶元素,只是将它赋给一个变量,因此栈顶指针不会改变。
当栈顶指针为0时,说明栈空,读不到栈顶元素。
栈是按照"先进后出"或"后进先出"的原则组织数据,但是出栈方式有多种选择,在考题中经常考查各种不同的出栈方式。
考点6 线性链表的基本概念考试链接:考点6在笔试考试中出现的几率为30%,主要是以选择的形式出现,分值为2分,此考点为识记内容。
重点识记结点的组成。
在链式存储方式中,要求每个结点由两部分组成:一部分用于存放数据元素值,称为数据域,另一部分用于存放指针,称为指针域。
其中指针用于指向该结点的前一个或后一个结点(即前件或后件)。
链式存储方式既可用于表示线性结构,也可用于表示非线性结构。
(1)线性链表线性表的链式存储结构称为线性链表。
在某些应用中,对线性链表中的每个结点设置两个指针,一个称为左指针,用以指向其前件结点;另一个称为右指针,用以指向其后件结点。
这样的表称为双向链表。
(2)带链的栈栈也是线性表,也可以采用链式存储结构。
带链的栈可以用来收集计算机存储空间中所有空闲的存储结点,这种带链的栈称为可利用栈。
疑难解答:在链式结构中,存储空间位置关系与逻辑关系是什么?在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。
1.4树与二叉树考点7 树与二叉树及其基本性质考试链接:考点7在笔试考试中,是一个必考的内容,在笔试考试中出现的几率为100%,主要是以选择的形式出现,有时也有出现在填空题中,分值为2分,此考点为重点掌握内容。
重点识记树及二叉树的性质。
误区警示:满二叉树也是完全二叉树,而完全二叉树一般不是满二叉树。
应该注意二者的区别。
1、树的基本概念树(tree)是一种简单的非线性结构。
在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点。
每一个结点可以有多个后件,它们称为该结点的子结点。
没有后件的结点称为叶子结点。
在树结构中,一个结点所拥有的后件个数称为该结点的度。
叶子结点的度为0。
在树中,所有结点中的最大的度称为树的度。
2、二叉树及其基本性质(1)二叉树的定义二叉树是一种很有用的非线性结构,具有以下两个特点:①非空二叉树只有一个根结点;②每一个结点最多有两棵子树,且分别称为该结点的左子树和右子树。
由以上特点可以看出,在二叉树中,每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉树,而树结构中的每一个结点的度可以是任意的。
另外,二叉树中的每个结点的子树被明显地分为左子树和右子树。
在二叉树中,一个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树。
当一个结点既没有左子树也没有右子树时,该结点即为叶子结点。
(2)二叉树的基本性质二叉树具有以下几个性质:性质1:在二叉树的第k层上,最多有2k-1(k≥1)个结点;性质2:深度为m的二叉树最多有2m-1个结点;性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。
性质4:具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分。
在二叉树的遍历中,无论是前序遍历,中序遍历还是后序遍历,二叉树的叶子结点的先后顺序都是不变的。