数据结构与常用算法课件.ppt
《数据结构与常用算法课件.ppt》由会员分享,可在线阅读,更多相关《数据结构与常用算法课件.ppt(60页珍藏版)》请在三一办公上搜索。
1、第7章 数据结构与常用算法,7.1 数据结构的基本概念7.2 线性表及其存储结构7.3 栈和队列7.4 树与二叉树7.5 查找算法7.6 排序算法,7.1 数据结构的基本概念,7.1.1 基本术语,(1)数据:能被计算机识别、存储和加工处理的符号的总称。计算机中可以操作的对象(2)数据元素:数据的基本单位。在计算机中通常作为整体处理,也称为记录(3)数据项:数据元素的最小单位。一个数据元素由若干个数据项组成(4)数据对象:相同性质数据元素的集合。是数据的子集,武汉科技大学计算机科学与技术学院,7.1.1 基本术语,数据对象、数据元素与数据项一列整数2,3,5,-3,8,12若干列整数一个学生:
2、学号、姓名、性别、入学成绩。一个学生表:若干条学生记录,7.1.2 数据结构,数据结构:带结构的数据元素的集合。数据元素之间相互有关联例如,3214,6587,9345 a1,a2,a3在a1、a2和a3之间存在“次序”关系、不等于 6587,3214,9345 a2,a1,a3,7.1.2 数据结构,数据结构主要研究和讨论3个方面的问题:数据集合中,各种数据元素之间所固有的逻辑关系,即数据的逻辑结构;在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;对各种数据结构进行的运算,其中常用的有检索、插入、删除、排序等,7.1.2 数据结构,1.数据的逻辑结构指反映数据元素之间逻
3、辑关系的数据结构。两个要素:一是数据元素的集合,通常记为D;二是D上的二元关系,它反映了D中各数据元素之间的前驱与后继关系,通常记为R。一个数据结构可以表示成B=(D,R),其中B表示数据结构。通常把数据元素之间的这种固有的关系,简单地用前驱与后继关系来描述。例如家庭成员的数据结构可以表示成B=(D,R),其中D=父亲,儿子,女儿,R=,。,7.1.2 数据结构,1.数据的逻辑结构通常有下面3种基本结构:线性结构:结构中数据元素之间存在一个对一个的关系。树形结构:结构中数据元素之间存在一个对多个的关系。图形结构或网状结构:结构中数据元素之间存在多个对多个的关系。,7.1.2 数据结构,2.数据
4、的存储结构数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称物理结构)。在数据的存储结构中,不仅要存放数据元素的信息,还需要存放各数据元素之间的前驱和后继关系的信息。4种常见的存储结构:(1)顺序存储结构(2)链式存储结构(3)索引存储结构(4)散列存储结构,return,7.2 线性表及其存储结构,7.2.1 线性表的基本概念,通常,线性表是由n(n0)个数据元素 a1,a2,an组成的一个有限序列。存在唯一的一个被称为“第一个”的数据元素;存在唯一的一个被称为“最后一个”的数据元素;除了第一个之外,表中的每个数据元素均只有一个前驱;除了最后一个之外,表中的每个数据元素均只有
5、一个后继。,线性表的数据元素,通常也称为节点。数据元素在线性表中的位置只取决于它们自己的序号。线性表中节点的个数 n 称为线性表的长度。当 n=0 时,称为空表。,1.线性表的顺序存储(顺序表)线性表中的所有元素所占的存储空间是连续的;线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。高级语言中,常用“一维数组”a(1:m)表示这种存储结构,武汉科技大学计算机科学与技术学院,7.2.2 线性表的顺序存储及其运算,2.顺序表的基本运算(1)顺序表的插入(ai 前插入 x)移动元素:从最后一个(即第 n个)元素开始,直到第 i 个元素之间共 n-i+1 个元素依次向后移动一个位置aj aj+1
6、(j:ni)插入新元素:将新元素 x 插入到第 i 个位置x ai更新长度:n+1n当 n=m 时,不能再插入,否则会“上溢”;所以插入前要检查是否会“上溢”。,2.顺序表的基本运算(2)顺序表的删除(删除ai)移动元素:从第 i+1 个元素开始,直到第 n 个元素之间,共有 ni 个元素依次向前移动一个位置。aj aj-1(j:in)更新长度:n-1n当 n=0 时不能再删除,否则会“下溢”;所以删除前要检查是否会“下溢”。,线性表的顺序存储结构的特点具有简单、存储密度大、空间利用率高、对表中任一元素可直接确定其存储地址(随机存取)、效率高等优点;但是也有明显的不足:在顺序表中进行插入与删除
7、等操作时,需大量移动数据元素,浪费时间。因此,对于大的线性表,特别是元素变动频繁的大线性表,不宜采用顺序存储结构,而是采用链式存储结构。,1.线性表的链式存储通过每个节点的指针域将n个节点按其逻辑顺序连接在一起而构成的数据存储结构,称为链式存储结构。对线性链表而言,它不要求逻辑上相邻的元素在物理位置上也相邻,其存储单元既可以是连续的,也可以是不连续的,甚至可以零散分布在存储空间中的任何位置上。,其中指针域 next 用于指向该节点的后继节点,7.2.3 线性表的链式存储及其运算,1.线性表的链式存储,2.单链表的基本运算(1)单链表的插入(2)单链表的删除,ADR(ai-1),ADR(ai-1
8、).next ADR(x).next ADR(x)ADR(ai-1).next,ADR(ai-1).next.next ADR(ai-1).next 释放 ADR(ai-1).next,return,7.3 栈和队列,7.3.1 栈及其基本运算,1.什么是栈栈是限定在一端进行插入和删除的线性表。在栈中,允许插入和删除的一端称为栈顶,用指针 top 来表示栈顶的位置注意,top的指向而不允许插入和删除的另一端称为栈底,用 bottom 指向栈底注意,bottom的指向,1.什么是栈栈也被称为“先进后出”表或“后进先出”表。因此,栈具有记忆作用。例如:货物堆放子弹夹函数的调用,武汉科技大学计算机科
9、学与技术学院,2.栈的顺序存储及其运算在程序设计语言中,用一维数组 S(1:m)作为栈的顺序存储空间,其中m为栈的最大容量。初始状态:bottom=1,top=0,对栈的定义的进一步理解,一个栈的入栈序列是a,b,c,d,e,则不可能的出栈序列是()。AedcbaBdecbaCdceabDabcde,2.栈的顺序存储及其运算(1)入栈运算更新栈顶指针:top+1 top插入新元素:x Stop当 top=m 时,说明栈空间已满,不能再进行入栈操作。否则出现“上溢”错误。所以入栈之前,要检查是否会“上溢”,top-,x,2.栈的顺序存储及其运算(2)退栈运算读栈顶元素:Stop x更新栈顶指针:
10、top-1 top当 top=0 时,说明栈空,不能再进行退栈运算。否则会出现“下溢”错误;所以退栈之前,要检查是否会“下溢”,top-,-x,2.栈的顺序存储及其运算(3)读栈顶元素读数:Stop x栈顶指针保持不变当 top=0 时,说明栈空,读不到栈顶元素;所以读数之前,要检查是否为空栈。,7.3.2 队列及其基本运算,武汉科技大学计算机科学与技术学院,1.什么是队列指允许在一端进行插入,而在另一端进行删除的线性表。允许插入的一端称为队尾,通常用一个称为队尾指针(rear)的指针指向队尾元素的下一个位置注意,rear 的指向允许删除的一端称为队首,通常用一个称为队首指针(front)的指
11、针指向队首元素的位置注意,front 的指向,1.什么是队列队列又称为“先进先出”或“后进后出”的线性表,它体现了“先来先服务”的原则。例如:排队等候现象,武汉科技大学计算机科学与技术学院,1.什么是队列在程序设计语言中,用一维数组 S(1:m)作为队列的顺序存储空间,其中 m 为队列的最大容量初始状态:front=rear=1,1.什么是队列入队运算插入新元素:x Srear更新队尾指针:rear+1 rear当 rear=m+1 时,说明栈队列满,不能再入队。否则会出现“上溢”错误;所以入队之前,要检查是否会“上溢”观察:此时队首前面可能还有空位置。,rear-,x,1.什么是队列出队运算
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 常用 算法 课件
链接地址:https://www.31ppt.com/p-3766844.html