VFP数据结构与算法.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构与算法 张琦 章前导读 什么是算法?它包括哪些复杂度。 什么是数据的逻辑结构和存储结构。 栈和队列的定义是什么?都有什么特点? 二叉树的定义是什么?有哪些性质?二叉树的遍历? 本章主要内容 7.1 算法 7.2 数据结构的基本概念 7.3 线性表 7.4 栈和队列 7.5 线性表的链式存储结构 7.6 树 7.7 查找技术 7.8 排序技术 学习这章之前需要掌握的基本术语 学习这章之前需要掌握的基本术语 7.1 算法 7.1.1 算法的基本概念 ⑴ 算法的基本特征 ⑵ 算法的基本要素 ⑶ 算法设计基本方法 7.1.2 算法复杂度 ⑴ 算法的时间复杂度 ⑵ 算法的空间复杂度 算法的概念 算法是指解决方案的准确而完整的描述。 它是指令的有限序列,其中每一条指令表示一个或多个操作。 ⑴ 算法的基本特征 (2)算法的基本要素 (3)算法设计的基本方法 P203 7.1.2 算法复杂度 算法的时间复杂度,是指执行算法所需要的计算工作量。 算法的空间复杂度,一般是指执行这个算法所需要的内存空间。 7.2 数据结构的基本概念 ①数据的逻辑结构 数据关系之间的逻辑关系?????? ②数据的存储结构 数据的逻辑结构在计算机中的表示????? ③操作算法 插入、删除、修改、查询、排序等 7.2 数据结构的基本概念 集合 线性结构 -----表、栈、队列 非线性结构 -----树、图 7.2.1 数据结构的定义 1.数据的逻辑结构 2.数据的存储结构 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。 7.2.2 数据结构的图形表示 7.2.3 线性结构 7.3 线性表 7.3.1 线性表的定义 7.3.2 线性表的顺序存储结构 1.定义 2.顺序表的插入操作 3.顺序表的删除操作 7.3.1 线性表的定义 一个线性表是n个数据元素的有限序列。 线性表是一种线性结构。 数据元素在线性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的。 (1)有且只有一个根结点,它无前件; (2)有且只有一个终端结点,它无后件; (3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。线性表中结点的个数n称为线性表的长度。当n=0时,称为空表。 7.3.2 线性表的顺序存储结构 在计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素,称做线性表的顺序存储结构,简称顺序表。 7.3.2 线性表的顺序存储结构 7.4.1 栈 栈(Stack)是一种只允许在一端进行插入和删除的线性表 ,它是一种操作受限的线性表。 栈在生活中的例子 举例1 家里吃饭的碗,通常在洗干净后一个一个地落在一起存放,在使用时,若一个一个地拿,一定最先拿走最上面的那只碗,而最后拿出最下面的那只碗。 举例2 在建筑工地上,使用的砖块从底往上一层一层地码放,在使用时,将从最上面一层一层地拿取。 7.4 栈 利用一组地址连续的存储单元依次存放自栈底到栈顶的数据元素。 栈底的位置通常设置成数组的0单元 栈顶的当前位置是动态的,随着插入与删除而变化 对栈顶当前位置的标记称为栈顶指针 栈为后进先出(Last In First Out)的线性表,简称为LIFO表。 ???   栈的修改是按后进先出的原则进行。每次删除(退栈)的总是当前栈中最新的元素,即最后插入(进栈)的元素,而最先插入的是被放在栈的底部,要到最后才能删除。 顺序栈插入删除操作示意图 7.4.2 队列 队列在生活中的例子 举例1 到医院看病,首先需要到挂号处挂号,然后,按号码顺序救诊。 举例2 乘坐公共汽车,应该在车站排队,车来后,按顺序上车 举例3 在Windows这类多任务的操作系统环境中,每个应用程序响应一系列的消息,像用户点击鼠标;拖动窗口这些操作都会导致向应用程序发送消息。为此,系统将为每个应用程序创建一个队列,用来存放发送给该应用程序的所有消息,应用程序的处理过程就是不断地从队列中读取消息,并依次给予响应。 7.4.2 队列 (1)允许删除的一端称为队头(Front)。 (2)允许插入的一端称为队尾(Rear)。 (3)当队列中没有元素时称为空队列。 (4)队列亦称作先进先出(First In First Out)的线性表,简称为FIFO表。 (5)队列的修改是依先进先出的原则进行的。 新来的成员总是加入队尾(即不允许加塞),每次离开的成员总是队列头上的(不允许中途离队),即当前最老的成员离队。 顺序队列 7.5 线性表的链式存储结构 链接方式存储的线性表简称为链表(Linked List) 7.5.1 线性单链表 线性链表是

文档评论(0)

吉吉安华 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档