《计算机等级考试二级公共基础知识第一章》由会员分享,可在线阅读,更多相关《计算机等级考试二级公共基础知识第一章(26页珍藏版)》请在人人文库网上搜索。
1、第1章数据结构和算法I .教学目标1.理解算法的基本概念。2.理解数据结构的基本概念。3.理解线性表及其顺序存储结构。4.了解堆栈和队列的基本知识。5.理解线性链表。6.理解树和二叉树的基本概念,掌握二叉树的性质和遍历。7、了解搜索技术。8、了解分拣技术。二。教学方法1、重点内容和经常性测试内容的重点。2.举例说明程序设计中的重点和难点,如实际问题。三。主要内容1.算法的时间复杂度和空间复杂度。2.判断线性结构和非线性结构。3.堆栈和队列的基本知识,计算堆栈和队列中的元素数量。4.二叉树的基本性质和二叉树的遍历。5.搜索方法和排序技术中的最坏情况时间。四、教学内容1.1算法1.1.1算法的基本。
2、概念算法是指对问题解决方案的准确和完整的描述。1.算法的基本特征:(理解记忆)(1)可行性(2)确定性算法的确定性意味着算法中的每一步都必须明确定义,不允许有歧义的解释或歧义。(3)贫穷算法的有限性意味着算法必须在有限的时间内完成,也就是说,算法必须在执行有限的步骤后终止。(4)有效性所谓的算法是一组严格定义操作顺序的规则,每条规则都是有效和清晰的,并且这个顺序将在有限的次数内终止。所谓的算法是一组严格定义操作顺序的规则,每条规则都是有效和清晰的,并且这个顺序将在有限的次数内终止。2.算法的基本要素:(1)算法中数据对象的运算和运算。(2)算法的控制结构:顺序、选择和循环(记忆)3.算法设计的。
3、基本方法:(理解)(1)枚举法(2)归纳(3)递归(4)递归(5)半递归技术(6)回溯法1.1.2算法的复杂性算法的复杂度主要包括时间复杂度和空间复杂度。1.算法的时间复杂度是指执行算法所需的计算工作量。算法的工作量由算法执行的基本操作的数量来衡量。算法执行的基本时间与问题的规模有关。分析算法工作量的方法:(理解)(1)平均行为(2)最坏情况的复杂性最坏情况分析是指当比例为n时,算法执行的最大基本操作数。2.算法的空间复杂度通常指执行算法所需的内存空间。算法占用的存储空间包括算法程序占用的空间、输入初始数据占用的存储空间以及算法执行过程中所需的额外空间。算法的时间复杂度不一定与空间复杂度相关。。
4、1.2数据结构的基本概念1.2.1什么是数据结构简而言之,数据结构指的是相互关联的数据元素的集合。例如:(1)一年四季的名称春天,夏天,秋天,冬天(2)代表家庭成员的每个成员父亲,儿子,女儿在数据处理领域,数据元素之间的这种内在关系通常简单地用先行关系来描述。先行关系是数据元素之间的基本关系。一般来说,数据元素之间的任何关系都可以用先行关系来描述。1.数据的逻辑结构数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。2.数据的存储结构计算机存储空间中数据逻辑结构的存储形式称为数据存储结构(也称为数据物理结构)。注意:数据的逻辑结构可以根据需要表示为各种存储结构,即,数据的逻辑结构与存储结构不。
5、一一对应。常用的数据存储结构包括序列、链接、索引等。1.2.2数据结构的图示冬天的秋天夏天春天上图显示了全年数据结构的图形表示儿子女儿父亲上图显示了家庭成员代际关系的数据结构的图形表示1、节点的基本概念理解根节点:在数据结构中,没有前因的节点称为根节点叶节点(终端节点):没有post的节点称为叶节点。内部节点:除根节点和终端节点外的其他节点通常称为内部节点。2.操作理解(1)插入操作:在数据结构中添加一个新节点。(2)删除操作:删除数据结构中的一个节点。插入和删除操作是数据结构的两种基本操作。1.2.3线性结构和非线性结构如果非空数据结构满足以下两个条件:(1)只有一个根节点;(2)每个节点最。
6、多有一个前部和一个后部。数据结构是线性结构。线性结构也称为线性表。如果一个数据结构不是线性的,它被称为非线性结构。线性结构和非线性结构都可以是空数据结构。注意:记忆(1)线性结构包括线性表、堆栈、队列、循环队列和线性链表(2)非线性结构:树和二叉树1.3线性表及其顺序存储结构(理解)1.3.1线性表的基本概念线性表是最简单也是最常用的数据结构。(线性结构)1.3.2线性表的顺序存储结构在计算机中存储线性表的最简单方法之一是顺序存储,也称为顺序分配。线性表的顺序存储结构具有以下两个基本特征:(1)线性表中所有元素占用的存储空间是连续的;(2)线性表中的数据元素以逻辑顺序存储在存储空间中。在编程语。
7、言中,通常定义一维数组来表示线性表的顺序存储空间。1.3.3序列表的插入操作(简单理解)1.3.4序列表的删除操作(简单理解)1.4堆栈和队列1.4.1堆栈及其基本操作1.什么是堆栈堆栈是一个线性表,仅限于一端的插入和删除操作。记忆数据组织原则:“先进先出”或“后进先出”内存堆栈具有存储功能。使用顶部指针指向堆栈顶部(顶部元素),底部指针指向堆栈底部(底部元素)2.堆栈的顺序存储结构及其操作(理解)在编程语言中,一维数组被用作堆栈的顺序存储空间。堆栈的基本操作:(1)堆垛作业(2)回堆操作(3)读取堆栈的顶部元素附加内容:计算堆栈中元素的数量,m代表容量,b代表底部,t代表顶部大-小1=堆栈中。
8、元素的数量1.4.2队列及其基本操作1.什么是队列队列是线性表,允许一端插入,另一端删除。队列的数据组织原则是“先进先出”或“后进先出”使用头部指针指向头部元素的下一个位置,使用尾部指针指向尾部元素。在编程语言中,一维数组被用作队列的顺序存储空间。2.循环队列及其与运算在实际应用中,队列的顺序存储结构一般采用循环队列的形式。(1)排队操作(2)退出团队附加内容:计算队列中元素的数量。m代表能力,f代表团队领导指针,r代表团队领导指针(1) f =r元素数=m-f r1.5线性链表(只需理解)1.5.1线性链表的基本概念1.线性链表线性表的链式存储结构称为线性链表。2.带链条的堆栈3.带链条的队。
9、列1.5.2线性链表的基本操作1.在线性链表中查找指定的元素2.插入线性链表3.删除线性链表1.5.3循环链表及其基本操作1.6树和二叉树(强调)1.6.1树木的基本概念树是一个简单的非线性结构。树形结构的基本术语:(理解)1.根节点:在树结构中,只有一个没有前因的节点,称为树的根2.子节点:每个节点的后继节点称为该节点的子节点3.叶节点:没有余数的节点4.节点度:节点拥有的余数。5.树的度:所有节点的最大度称为树的度。6.树的深度:树的分层。树的最大高度叫做树的深度。7.子树:以某个子节点为根的树称为该节点的子树。1.6.2二叉树及其基本性质1.什么是二叉树二叉树有以下两个特点:(1)非空二。
10、叉树只有一个根节点;(2)每个节点最多有两个子树,分别称为节点的左子树和右子树。节点的最大度数是2,树的最大度数是2。2.二叉树的基本性质属性1在二叉树的第k级上最多有2k-1个(k=1)节点属性2中深度为m的二叉树最多有2m-1个节点属性3在任何二叉树中,0度的点(即叶节点)总是比2度的节点多一个。n0=n2 1性质4是具有n个节点的二叉树,其深度至少为log2n 1,其中log2n表示log2n的整数部分。3.全二叉树和全二叉树(1)在全二叉树的第k层上有2k-1个节点,在m深度的全二叉树中有2m-1个节点。DEFGCBA(2)完全二叉树除了最后一层,每层的节点数都达到最大。在最后一层,只。
11、有右边的几个节点丢失了。完整的二叉树也是完整的二叉树,而完整的二叉树通常不是完整的二叉树。完整的二叉树也有以下两个属性:性质5中具有n个节点的完全二叉树的深度是log2n 1。属性6让完整的二叉树共享.此外:(1)完全二叉树度为1的节点数为0或1。n1=0,1n0=n2 1n=n0 n1 n2(2)如果完整二叉树中的节点总数是n,n0是叶节点数,那么A.n是偶数,n0=n/2B.n是奇数,n0=(n 1)/21.6.3二叉树的存储结构二叉树通常采用链式存储结构。1.6.4二叉树的遍历master二叉树遍历是指不重复访问二叉树中的所有节点。在“先左后右”的原则下,根据访问根节点的顺序,有三种遍历。
12、二叉树的方法。1.序言遍历:根节点左子树右子树2.中间顺序遍历:左子树根节点右子树3.序列后遍历:左子树右子树根节点DEBCAF遍历结果:(1)序言遍历:ABDECF(2)中间顺序遍历:DBEAFC(3)后顺序遍历:DEBFCA1.7搜索技术对于长度为n的有序线性表1.7.1按顺序搜索在最坏的情况下,顺序搜索需要被比较n次。1.7.2二分法搜索在最坏的情况下,二分搜索(二分法搜索)需要比较log2n次。1.8分拣技术1.8.1交换类排序方法1.气泡分选法在最坏的情况下,比较的次数是n(n-1)/22.快速排序方法在最坏的情况下,比较的次数是n(n-1)/21.8.2插入类排序方法1.简单的插入排序方法在最坏的情况下,比较的次数是n(n-1)/22.希尔分类方法在最坏的情况下,比较的次数是O(n1.5)1.8.3选择类别的排序方法1.只需选择排序方法在最坏的情况下,比较的次数是n(n-1)/22.堆排序方法在最坏的情况下,比较的次数是O(nlog2n)摘要:1.在最坏的情况下,有必要比较n(n-1)/2排序方法如下:气泡排序法、快速排序法、简单插入排序法和简单选择排序法。2.希尔排序法,最差情况下所需的比较次数为0(n 1.5)3.堆排序方法。在最坏的情况下,比较的次数是0(nlog 2n。