全国计算机等级考试--公共基础.ppt





《全国计算机等级考试--公共基础.ppt》由会员分享,可在线阅读,更多相关《全国计算机等级考试--公共基础.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、All rights reserved:2WDragon课程内容课程内容数据结构与算法数据结构与算法程序设计基础程序设计基础软件工程基础软件工程基础数据库设计基础数据库设计基础All rights reserved:2WDragon算法基本概念算法基本概念v什么是算法什么是算法算法是指用系统的方法描述解决问题的策略算法是指用系统的方法描述解决问题的策略机制。机制。v算法的基本特征算法的基本特征有穷性、确定性、可行性、拥有足够的情报有穷性、确定性、可行性、拥有足够的情报v算法的构成要素算法的构成要素对数据对象的运算和操作、算法的控制结构对数据对象的运算和操作、算法的控制结构All rights
2、reserved:2WDragon算法复杂度算法复杂度v时间复杂度时间复杂度执行算法所需要的计算工作量。执行算法所需要的计算工作量。算法的工作量是问题规模的函数,即算法的工作量是问题规模的函数,即算法的工作量算法的工作量f(n)1、最坏情况复杂性、最坏情况复杂性2、期望复杂性、期望复杂性All rights reserved:2WDragon算法复杂度算法复杂度v空间复杂度空间复杂度执行算法所需要的内存空间。执行算法所需要的内存空间。包括算法程序所占空间、输入初始数据所占包括算法程序所占空间、输入初始数据所占空间及算法执行中所需额外空间。空间及算法执行中所需额外空间。v时空复杂度时空复杂度返回
3、All rights reserved:2WDragon数据结构基本概念数据结构基本概念v什么是数据结构什么是数据结构(DataStructure)数据结构是研究数据元素数据结构是研究数据元素(DataElement)之间抽象之间抽象化的相互关系和这种关系在计算机中的存储表示化的相互关系和这种关系在计算机中的存储表示(即即所谓数据的所谓数据的逻辑结构逻辑结构和和物理结构物理结构),并对这种结构定,并对这种结构定义义相应的运算相应的运算,设计出相应的算法,而且确保经过,设计出相应的算法,而且确保经过这些运算后这些运算后所得到的新结构仍然是原来的结构类型所得到的新结构仍然是原来的结构类型。为了叙述
4、上的方便和避免产生混淆,通常把为了叙述上的方便和避免产生混淆,通常把数据的数据的逻辑结构统称为数据结构逻辑结构统称为数据结构,把,把数据的物理结构统称数据的物理结构统称为存储结构为存储结构(StorageStructure)。All rights reserved:2WDragon栈和队列栈和队列v1栈的定义栈的定义栈栈(stack)是一种是一种只允许在一端只允许在一端进行插入和删除进行插入和删除的的操作受限的线性表操作受限的线性表。在表中只允许进行插入和。在表中只允许进行插入和删除的一端称为栈顶删除的一端称为栈顶(top),另一端称为栈底,另一端称为栈底(bottom)。当栈中无数据元素时,
5、称为空栈。当栈中无数据元素时,称为空栈。根据栈的定义可知,栈也被称为根据栈的定义可知,栈也被称为“后进先出后进先出”的的线性表。线性表。All rights reserved:2WDragon栈和队列栈和队列v2栈的基本运算栈的基本运算(1)入栈入栈:在栈:在栈s的顶部插入元素的顶部插入元素x,若栈满,则,若栈满,则返回返回FALSE;否则,返回;否则,返回TRUE。(2)出栈出栈:若栈:若栈s不空,则返回栈顶元素,并从不空,则返回栈顶元素,并从栈顶中删除该元素;否则,返回空元素栈顶中删除该元素;否则,返回空元素NULL。(3)读取栈顶元素读取栈顶元素:若栈:若栈s不空,则返回栈顶元不空,则返
6、回栈顶元素;否则返回空元素素;否则返回空元素NULL。All rights reserved:2WDragon栈和队列栈和队列v3队列的定义队列的定义队列队列(queue)是一种是一种只允许在一端只允许在一端进行插入,而进行插入,而在另一端在另一端进行删除的线性表,它是一种进行删除的线性表,它是一种操作受限操作受限的线性表的线性表。在表中只允许进行插入的一端称为队尾在表中只允许进行插入的一端称为队尾(rear),只允许进行删除的一端称为队头只允许进行删除的一端称为队头(front)。当队列。当队列中无数据元素时,称为空队列。队列也被称为中无数据元素时,称为空队列。队列也被称为“先进先出先进先出
7、”表。表。All rights reserved:2WDragon栈和队列栈和队列v循环队列循环队列将顺序队列的存储区假想为一个环状的空间,如图所示。我将顺序队列的存储区假想为一个环状的空间,如图所示。我们可假想们可假想q-queue0接在接在q-queueMAXNUM-1的后面。的后面。当发生假溢出时,将新元素插入到第一个位置上,这样做,当发生假溢出时,将新元素插入到第一个位置上,这样做,虽然物理上队尾在队首之前,但逻辑上队首仍然在前。入列虽然物理上队尾在队首之前,但逻辑上队首仍然在前。入列和出列仍按和出列仍按“先进先出先进先出”的原则进行,这就是循环队列。的原则进行,这就是循环队列。MAX
8、NUM-101rearfront循环队列示意All rights reserved:2WDragon栈和队列栈和队列仅凭仅凭q-front=q-rear不能判定队列是空还不能判定队列是空还是满。是满。012345frontrear(b)ABC012345frontrear(a)012345ABCDEFfrontrear(c)循环队列示意图循环队列示意图(a)队列空;()队列空;(b)队列非空;)队列非空;(c)队列满队列满返回返回All rights reserved:2WDragon线性链表线性链表v线性链表是线性表的链式存储结构,是一种线性链表是线性表的链式存储结构,是一种物理存物理存储单
9、元上非连续、非顺序的存储结构储单元上非连续、非顺序的存储结构,数据元素的,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。因逻辑顺序是通过链表中的指针链接次序实现的。因此,在存储线性表中的数据元素时,一方面要存储此,在存储线性表中的数据元素时,一方面要存储数据元素的值,另一方面要存储各数据元素之间的数据元素的值,另一方面要存储各数据元素之间的逻辑顺序,为此,将每一个存储结点分为两部分:逻辑顺序,为此,将每一个存储结点分为两部分:一部分用于存储数据元素的值,称为一部分用于存储数据元素的值,称为数据域数据域;另一部分用于存放下一个数据元素的存储结点的地另一部分用于存放下一个数据元素的存储结点的
10、地址,即指向后继结点,称为址,即指向后继结点,称为指针域指针域。All rights reserved:2WDragon线性链表线性链表此种形式的链表因只含有一个指针域,又称此种形式的链表因只含有一个指针域,又称为单向链表,简称单链表。图为单向链表,简称单链表。图2-7(a)所示为一所示为一个空线性链表。图个空线性链表。图2-6(b)所示为一个非空线性所示为一个非空线性链表(链表(a0,a1,a2,an-1)。)。a0a1a an-n-1 1 head head (a)(b)图图2-7 线性链表的存储结构线性链表的存储结构All rights reserved:2WDragon树与二叉树树与二
11、叉树v树结构的基本术语树结构的基本术语(1)结点的度)结点的度(Degree)树中的一个结点拥有的子树数称为该结点的度树中的一个结点拥有的子树数称为该结点的度(Degree)。一棵树的度是指该树中结点的最大度数。一棵树的度是指该树中结点的最大度数。度为零的结点称为叶子度为零的结点称为叶子(Leaf)或终端结点。或终端结点。度不为零的结点称分支结点或非终端结点。度不为零的结点称分支结点或非终端结点。除根结点之外的分支结点统称为内部结点。除根结点之外的分支结点统称为内部结点。根结点又称为开始结点。根结点又称为开始结点。All rights reserved:2WDragon树与二叉树树与二叉树v树
12、结构的基本术语树结构的基本术语(2)结点的层数)结点的层数(Level)和树的高度(和树的高度(Height)结点的层数结点的层数(Level)从根起算:从根起算:根的层数为根的层数为1其余结点的层数等于其双亲结点的层数加其余结点的层数等于其双亲结点的层数加1。双亲在同一层的结点互为堂兄弟。双亲在同一层的结点互为堂兄弟。树中结点的最大层数称为树的高度树中结点的最大层数称为树的高度(Height)或深度或深度(Depth)注意:注意:很多文献中将树根的层数定义为很多文献中将树根的层数定义为0。All rights reserved:2WDragon树与二叉树树与二叉树v二叉树的重要性质二叉树的重
13、要性质性质1 二叉树第二叉树第i层上的结点数目最多为层上的结点数目最多为2i-1(i1)性质2 深度为深度为k的二叉树至多有的二叉树至多有2k-1个结点个结点(k1)性质3 在任意在任意-棵二叉树中,若终端结点的个数为棵二叉树中,若终端结点的个数为n0,度为,度为2的结点数为的结点数为n2,则,则n0=n2+1性质4 具有具有n个结点的二叉树的深度至少为个结点的二叉树的深度至少为All rights reserved:2WDragon树与二叉树树与二叉树1、满二叉树、满二叉树(FullBinaryTree)一棵深度为一棵深度为k且有且有2k-1个结点的二个结点的二又树称为满二叉树。又树称为满二
14、叉树。满二叉树的特点:满二叉树的特点:(1)每一层每一层(k)上的结点数都达上的结点数都达到最大值到最大值(2k-1)。即对给定的高度,。即对给定的高度,它是具有最多结点数的二叉树。它是具有最多结点数的二叉树。(2)满二叉树中不存在度数为满二叉树中不存在度数为1的结点,每个分支结点均有两棵的结点,每个分支结点均有两棵高度相同的子树,且树叶都在最高度相同的子树,且树叶都在最下一层上。下一层上。ACBGFEDAll rights reserved:2WDragon树与二叉树树与二叉树2、完全二叉树、完全二叉树(CompleteBinaryTree)若一棵二叉树至多只有最下面的两层上结若一棵二叉树至
15、多只有最下面的两层上结点的度数可以小于点的度数可以小于2,并且最下一层上的,并且最下一层上的结点都集中在该层最左边的若干位置上,结点都集中在该层最左边的若干位置上,则此二叉树称为完全二叉树。则此二叉树称为完全二叉树。ACBFEDAll rights reserved:2WDragon树与二叉树树与二叉树v遍历算法遍历算法1先序遍历:先序遍历:根结点根结点左子树左子树右子树。右子树。2中序遍历:中序遍历:左子树左子树根结点根结点右子树右子树3后序遍历:后序遍历:左子树左子树右子树右子树根结点。根结点。All rights reserved:2WDragon树与二叉树树与二叉树ADBCFE先序序列
16、先序序列ABDCEF中序序列中序序列DBAECF后序序列后序序列DBEFCA返回返回All rights reserved:2WDragon查找技术查找技术v顺序查找基本思想顺序查找基本思想v折半查找(二分法)基本思想折半查找(二分法)基本思想All rights reserved:2WDragon排序技术排序技术v冒泡排序基本思想冒泡排序基本思想v直接插入排序基本思想直接插入排序基本思想v希尔排序希尔排序v选择排序选择排序All rights reserved:2WDragon排序技术排序技术v按平均时间将排序分为四类:按平均时间将排序分为四类:(1)平方阶)平方阶(O(n2)排序排序 例如
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 计算机等级考试 公共 基础

限制150内