导论 第6章 数据结构.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 数据结构 教学目的: 了解数据结构课程的特点及经典算法 教学内容 6.1 概述 6.2 几种经典的数据结构 6.3 基本算法 6.1 概述 6.1.1 数据结构课程的地位 6.1.2 基本概念和术语 6.1.1 数据结构课程的地位 从20世纪60年代末到70年代初,出现了大型程序,软件也相对独立,结构程序设计成为程序设计方法学的主要内容,人们越来越重视数据结构,认为程序设计的实质是对确定的问题选择一种好的结构,加上设计一种好的算法。 6.1.1 数据结构课程的地位 数据结构课程较系统地介绍了软件设计中常用数据结构以及相应的存储结构和算法,系统介绍了常用的查找和排序技术,并对各种结构与技术进行分析和比较,内容非常丰富。数据结构在计算机科学中是一门综合性的专业基础课。 数据结构涉及到多方面的知识,如计算机硬件范围的存储装置和存取方法,在软件范围中的文件系统、数据的动态管理、信息检索,数学范围的集合、逻辑的知识,还有一些综合性的知识,如数据类型、程序设计方法、数据表示、数据运算、数据存取等。 6.1.1 数据结构课程的地位 数据结构是介于数学、计算机硬件、计算机软件三者之间的一门核心课程。在计算机科学中,数据结构不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。 6.1.2 基本概念和术语 计算机所处理的数据已不再是单纯的数值数据,而更多的是非数值数据。 这些需要处理的数据并不是杂乱无章的,它们一定有内在的联系,只有弄清楚它们之间的本质联系,才能使用计算机对大量的数据进行有效的处理。 6.1.2 基本概念和术语 6.1.2 基本概念和术语 1.数据的逻辑结构 表6-1中的数据之间存在的内在联系是:在这些数据中,有并且只有一个结点是表首结点,它前面没有其它结点,后面有一个和它相邻的结点;有且只有一个结点是表尾结点,它后面没有其它结点,前面有一个和它相邻的结点;除这两个结点之外,表中所有其它的结点都有且仅有一个和它相邻位于它之前的一个结点,也有且仅有一个和它相邻位于它之后的一个结点,这些就是学生住宿情况信息表的逻辑结构。 6.1.2 基本概念和术语 2.数据的存储结构 将表6-1中的所有结点存入计算机时,就必须考虑存储结构,使用C语言进行设计时,常见的方式是用一个结构数组来存储整个信息表,每一个数组元素对应于信息表中的一个结点。信息表中相邻的结点,对应的数组元素也是相邻的,或者说在这种存储方式下,逻辑相邻的结点就必须物理相邻。这是一种称之为顺序存储的方式,当然,还有其它的存储方式。数据在计算机中的存储方式称为存储结构。 6.1.2 基本概念和术语 3.数据的运算集合 ?对数据的处理必定涉及到相关的运算,在上述信息表中,可以有删除一个结点、增加一个结点等操作。应该明确指明这些操作的含义。比如删除操作,是删除序号为00004的结点还是删除姓名为王洪涛的结点是应该明确定义的,如果需要可以定义两个不同的删除操作,为一批数据定义的所有运算(或称操作)构成一个运算(操作)集合。 6.2 几种经典的数据结构 6.2.1 线性表 6.2.2 栈和队列 6.2.3 树 6.2.4 图 6.2.1 线性表 1.线性表的逻辑结构 2.线性表的存储结构 2.线性表的基本运算 6.2.1 线性表 1.线性表的逻辑结构 线性表(Linear List)是由n (n≥0)个类型相同的数据元素a1,a2,…,an组成的有限序列,记做(a1,a2,…,ai-1,ai,ai+1, …,an)。这里n为线性表的长度,n=0时称为空表,数据元素ai (1≤i≤n)只是一个抽象的符号,其具体含义在不同情况下可以不同。 此外,线性表中相邻数据元素之间存在着次序关系,即对于非空的线性表(a1,a2,…ai-1,ai,ai+1, …,an),表中ai-1 领先于ai,称ai-1 是ai的直接前驱,而称ai是 ai-1的直接后继。 6.2.1 线性表 2.线性表的存储结构 (1)线性表的顺序存储结构 线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素,使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系。采用顺序存储结构的线性表通常称为顺序表。 6.2.1 线性表 2.线性表的存储结构 (2)线性表的链式存储结构 通常我们将采用链式存储结构的线性表称为链表。链表是用一组任意的存储单元来存放线性表的数据元素,这组存储单元可以是连续的,也可以是非连续的,甚至是零散分布在内存的任何位置上。从实现角度看,链表可分为动态链表和静态链表;从链接方式的角度看,链表可分为单链表、循环链表和双链表。 6.2.1 线性

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档