算法与基本数据结构.ppt
《算法与基本数据结构.ppt》由会员分享,可在线阅读,更多相关《算法与基本数据结构.ppt(46页珍藏版)》请在三一办公上搜索。
1、算法与基本数据结构,1.算法的基本概念;算法复杂度的概念和意义(时间复杂度与空间复杂度)。2.数据结构的定义;数据的逻辑结构与存储结构;数据结构的图形表示;线性结构与非线性结构的概念。3.线性表的定义;线性表的顺序存储结构及其插入与删除运算。4.栈和队列的定义;栈和队列的顺序存储结构及其基本运算。5.线性单链表、双向链表与循环链表的结构及其基本运算。6.树的基本概念;二叉树的定义及其存储结构;二叉树的前序、中序和后序遍历。7.顺序查找与二分法查找算法;基本排序算法(交换类排序,选择类排序,插入类排序)。,算法与基本数据结构,基本概念 基本数据结构 查找与排序,基本概念,数据:是对客观事物的符号
2、表示,在计算机科学中是指能输入到计算机中并被计算机存储、加工的符号总称。,数据结构的定义,数据元素:是数据的基本单位,由若干个数据项组成,在程序中作为一个整体而加以考虑和处理。数据元素具有完整确定的实际意义,有时也称为元素、结点、顶点或记录,结构:是数据元素之间的关联关系,数据结构:数据结构带有结构的同性质数据元素的集合,数据结构包括以下三方面内容:逻辑结构、存储结构和对数据结构的操作 逻辑结构:数据元素之间逻辑上的关系,它是数据的组织形式。通常将数据的逻辑结构简称为数据结构,数据的逻辑结构分两大类:线性结构和非线性结构。具体可分为四类:集合 线性结构 树型结构 图状结构 其中、为非线性结构,
3、基本概念,数据结构的内容,存储结构:数据元素以及数据元素之间的逻辑关系在计算机内存中的表示。一般地,一个存储结构包括以下两个主要部分:,基本概念,数据结构的内容,存储结点(简称结点),每个结点存放一个数据元素 数据元素之间关系的表示,也就是逻辑结构的计算机内部表示常用的数据存储结构:顺序存储方法链式存储方法索引存储方法散列存储方法数据的运算如查找、排序、增加、修改、删除,各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,数据的存储结构,数据的存储结构,链式存储结构是在每个结点中至少包含一个指针域,用指针来体现数据元素之间逻辑上的联系,算法:算法是对具体问题求解过程和步骤的一
4、种描述,简单地说,就是解决问题的操作步骤。,基本概念,算法,算法四个基本特征:有穷性:算法在特定的执行环境中执行应当能够得出 满意的结果,即必须有一个或多个输出。确定性:对算法中的每一步的描述是明确的,无歧义 可行性:算法中的操作步骤为有限个,且每个步骤都能在有限时间内完成。拥有足够的情报:算法在拥有足够的输入信息和初始化信息时,才是有效的;当提供的情报不够时,算法可能无效。,算法通常由两个基本要素组成:对数据对象的运算和操作算法的控制结构,基本概念,算法,算法复杂度包括:时间复杂度:指执行算法时所需要的计算工作量,通常是用算法所执行的基本运算次数来度量。注:算法程序执行的具体时间和算法的时间
5、复杂度并不是一致的。空间复杂度:指执行这个算法所需要的内存空间。,算法的描述用自然语言表示算法:就是用人们所熟悉的自然语言把算法的各个步骤依次表示出来。用流程图表示算法:就是用一些大家共识的专用图形符号和带有箭头的流程线来表示算法。用程序设计语言表示算法:用计算机能理解和执行的程序设计语言把算法表示出来,然后把程序输入计算机并执行,计算机才能按照预定的算法去解决问题。,基本概念,算法,算法设计要求:正确性 可读性 健壮性效率高与低存储需求,基本概念,算法,基本数据结构,线性表:是n(nO)个同类型数据元素(结点)的有穷序列。其中数据元素的个数n称为线性表的长度(简称表长)。表长为O的线性表称为
6、空表。表示成:(a1,a2,an),线性表的定义和基本特征,线性表,线性表逻辑结构的基本特征:存在惟一的一个被称为“第一个”的数据元素和惟一的一个被称为“最后一个”的数据元素;除第一个数据元素外,其他数据元素有且仅有一个直接前趋元素;除最后一个数据元素外,其他数据元素有且仅有一个直接后继元素。,顺序表是用一组地址连续的存储单元依次存储线性表的各个数据元素。,特点:逻辑结构中相邻的结点在存储结构中仍相邻,基本数据结构,线性表的顺序存储结构,线性表,顺序表,应用范围:适合于小线性表或者建立之后其中元素不常变动的线性表,而不适合用于需要经常进行插入和删除运算的线性表和长度较大的线性表。,在顺序表上实
7、现插入和删除运算必须移动结点才能够反映出结点间逻辑关系的变化(1)插入:在表的第i(1in+1)个位置上,插入一个新结点x,使线性表的长度加1。基本步骤为:将结点aian各后移一个位置,以便空出第i个位置;将新结点x置入第i个位置;表长加l,基本数据结构,插入、删除运算在顺序表上的实现,线性表,(2)删除:将表的第i(1in)个结点删去,使线性表的长度减1。基本步骤为:结点ai+1an依次前移一个位置(覆盖被删结点ai);表长减1,基本数据结构,插入、删除运算在顺序表上的实现,线性表,单链表是用一组任意的存储单元来存放线性表的结点。单链表的结点(每个存储单元)由数据域(data)和指针域(ne
8、xt)两部分组成;数据域用于存储线性表一个数据元素;指针域用于存放一个指针,该指针指向其直接后继结点。这样,所有结点通过指针链接起来,因此链表中结点的逻辑次序和物理次序不一定相同,特点:指针为数据元素之间的逻辑关系的映像,基本数据结构,线性表的链式存储结构,线性表,单链表,循环链表是一种首尾相接的链表,双向链表,就是在单链表的每个结点里再增加一个指向其直接前趋的指针域prior,这样形成的链表就有两条不同方向的链。双(向)循环链表:头尾相链接的双向链表,基本数据结构,线性表的链式存储结构,线性表,其他链表,(1)插入:基本步骤如下:在单链表上找到插入位置;生成一个值为x的新结点;将新结点插入
9、假定指针p指向单链表中的第i-1个结点,s指向已生成的新结点,在单链表上插入结点s的操作过程如图所示。基本操作语句为:s-next=p-next;p-next=s;,基本数据结构,插入、删除运算在单链表上的实现,线性表,(2)删除:基本步骤如下:找到第i个结点;从单链表上摘除该结点。假定指针p指向待删结点的前一个结点,q指向待删结点,删除操作用c语言描述如下:p-next=q-next;free(q);执行free(q)的结果是释放q所指结点占用的内存空间。若在删除算法中无此语句,则结点q虽已不在单链表上,但仍被用户程序闲置性占用。,基本数据结构,线性表,插入、删除运算在单链表上的实现,栈和队
10、列都是操作受限的线性表,基本数据结构,栈和队列,栈的逻辑结构和线性表相同,但是,栈(Stack)是仅限在表的一端进行插入和删除运算的线性表,通常称插入、删除这一端为栈顶,另一端称为栈底,表中无元素时为空栈,栈,栈的运算原则是“先进后出”插入运算称为进栈(或入栈)删除运算称为退栈(或出栈)基本运算为:入栈、出栈、取栈顶元素,栈的特点:,基本数据结构,栈和队列,(1)栈顶元素总是最后被插入的元素,也是最早被删除的元素。(2)栈底元素总是最早被插入的元素,也是最晚被删除的元素。(3)栈具有记忆作用。(4)在顺序存储结构下,栈的插入与删除运算都不需要移动其他元素。(5)栈顶指针Top动态反映了栈中元素
11、的变化情况。,栈,栈,顺序栈的进栈运算 将入栈元素放入到栈顶下标所指的位置上,栈顶下标加l 顺序栈的退栈运算 退栈先将栈顶下标减1,再将栈顶元素取出,基本数据结构,栈和队列,队列,队列(Queue),两头都有限制,插入只能在表的一端进行(只进不出),而删除只能在表的另一端进行(只出不进),进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。,基本数据结构,栈和队列,队列的操作原则是先进先出队列的顺序存储一般采用循环队列。把队列设想成一个循环表,即设想数组首尾相连。这种存储结构称为循环队。通常front指向队头元素的前一个位置,real指向队尾元素,树是n(n0)个
12、结点的有限集合。在任意一棵非空树中:有且仅有一个特定的称为根的结点:当nl时,其余结点分为m(m0)个互不相交的非空集合T1,T2,Tm,其中每一个集合本身又是一棵树,并称为根的子树。树是一种“分支层次”结构。所谓“分支”是指树中任一结点的子孙可以按它们所在的子树的不同而划分成不同的“分支”;所谓“层次”是指树上所有结点可以按它们的层数划分成不同的“层次”,基本数据结构,树,树型结构的基本概念和术语,(1)树上任一结点所拥有的子树的数目称为该结点的度。度为0的结点称为叶子或终端结点。度大于O的结点称为非终端结点或分支结点。一棵树中所有结点的度的最大值称为该树的度。(2)若树中结点A是结点B的直
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 算法 基本 数据结构
链接地址:https://www.31ppt.com/p-6596843.html