第1章数据结构精选文档.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第1章数据结构精选文档.ppt》由会员分享,可在线阅读,更多相关《第1章数据结构精选文档.ppt(51页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章数据结构本讲稿第一页,共五十一页课程介绍1.为什么要学习数据结构?2.该课程的主要内容是什么?如何学习?3.考核方式?总成绩=平时(30%)+期末(70%)平时=上机实习+平时作业+上课回答问题4.教材:殷人昆,数据结构(面向对象方法与C+语言描述)(第2版)清华大学出版社1.为什么要学习数据结构?2.该课程的主要内容是什么?数据结构=数据+结构(关系)本讲稿第二页,共五十一页数据结构数据(的集合)结构物理结构逻辑结构线性结构树结构图结构集合连续非连续顺序表链表顺序存储链式存储邻接矩阵存储邻接表存储顺序存储链式存储本讲稿第三页,共五十一页如何学习?1.预习:粗读教材,发现问题2.听课:重
2、点、难点,初步解决问题3.复习:细读教材,解决问题(理解抽象数据类型、看懂C+类的定义和实现)4.做题:巩固知识(C+类的定义和实现)5.实习:验证(调试程序)本讲稿第四页,共五十一页上机实习作业:1.顺序表及其应用2.链表及其应用.doc3.栈及其应用4.队列及其应用5.稀疏矩阵及其基本操作6.二叉树及其基本操作7.堆及其基本操作8.Huffman树及其基本操作9.图及其基本操作本讲稿第五页,共五十一页第一章第一章 绪论绪论内容提要:内容提要:本章主要介绍本章主要介绍数据结构的基本概念、数据结构的基本概念、术语术语,以及有关,以及有关算法的描述、分析算法的描述、分析的基本的基本常识。常识。本
3、讲稿第六页,共五十一页第一章 绪论1.1 数据结构的概念1.1.1 为什么要讨论数据结构?为什么要讨论数据结构?同时出现了如下一些变化:同时出现了如下一些变化:计算机科学是研究信息表示信息表示和信息处理信息处理的科学;信息信息是当今社会的重要资源;计算机产业及计算机科学技术飞速发展,计算机的硬件技术和软件技术都有了极大的发展,计算机应用也已经渗透到了社会的各个领域。计算机由最初的单一科学计算到几乎无所不能;计算机由最初的单一科学计算到几乎无所不能;加工处理的对象由数值型变为数值型和非数值型;加工处理的对象由数值型变为数值型和非数值型;处理的数据量由小变为大、巨大(海量存储、计算);处理的数据量
4、由小变为大、巨大(海量存储、计算);数据之间的关系由简单变复杂、很复杂;数据之间的关系由简单变复杂、很复杂;通过前面的学习,我们知道:通过前面的学习,我们知道:本讲稿第七页,共五十一页第一章 绪论思路思路2:将一“大堆杂乱无章大堆杂乱无章”的数据交给计算机处理是很不明智的,结果是加工处理的效率会非常低,有时甚至根本无法进行。于是:于是:人们开始考虑如何更有效地描述、表示、处理数据的问题,除了不断提高计算机技术外(其它课程),很重要的一个方面是通过研究、分析问题数据本身本身的特点,利用这些特点提高数据表示和处理的效率。这就是数据结构这就是数据结构 下面举几个例子,目的是加深对数据结构的理解,从中
5、也下面举几个例子,目的是加深对数据结构的理解,从中也可以看出研究数据结构的重要性!可以看出研究数据结构的重要性!信息的表示和组织形式直接影响到数据处理的效率!信息的表示和组织形式直接影响到数据处理的效率!解决思路解决思路1:发展硬件技术,开发出更快、更高级的硬件产品,但:发展硬件技术,开发出更快、更高级的硬件产品,但有没有其它途径呢?有没有其它途径呢?1.1 数据结构的概念本讲稿第八页,共五十一页例1 书目自动检索系统登录号:书名:作者名:分类号:出版单位:出版时间:价格:书目卡片书目文件按书名按作者名按分类号索引表线性表本讲稿第九页,共五十一页例1 书目自动检索系统 问题:问题:图书管理,完
6、成书目的自动检索。数据数据:一本本书籍,更确切地说是每本书的信息,如:书名、作者、出版社、出版日期、书号、内容提要等等。操作:操作:书目检索、入库、借书、还书等。涉及到:涉及到:书目数据逻辑组织、存储方法;检索、入库等操作实现算法。本讲稿第十页,共五十一页例2 人机对奕问题(井字棋)树.本讲稿第十一页,共五十一页例2 人机对奕问题 问题:问题:人机对弈,即人与计算机下棋。数据:数据:各种棋局状态,确切说就是描述棋盘格局的信息。操作:操作:走棋,即选择一种策略使棋局状态发生变化(由一个格局派生出另一个格局)涉及到:涉及到:“格局”数据逻辑组织、存储方法;走棋操作实现算法。本讲稿第十二页,共五十一
7、页例3 多叉路口交通灯管理问题CEDABABACADBABCBDDADBDCEAEBECED图本讲稿第十三页,共五十一页例3 多叉路口交通灯管理问题 问题:问题:多叉路口的交通灯管理,即在多叉路口应怎样设置交通灯,以保证交通畅通。数据:数据:路口各条道路的信息 操作:操作:设置信号灯(求出各个可以同时通行的路的集合)涉及到:涉及到:路口各条道路信息数据及其关系的逻辑组织、存储方法;信号灯设置的操作实现算法。本讲稿第十四页,共五十一页第一章 绪论1.1 数据结构的概念数据对象数据对象 Data Object具有相同性质的数据成员(数据元素)的集合,是数据的子集。结构结构 Structure 数据
8、元素之间的关系(Relation)。数据结构数据结构 Data Structure 由一个数据对象以及该对象中的所有数据元素之间的关系组成,即带结构的数据元素的集合。数据项数据项 Data Item 构成数据元素的成份,是数据不可分割的最小单位。1.1.2 数据结构及其术语数据结构及其术语数据数据 Data 用于描述客观事物的数值、字符等一切可以输可以输入到计算机入到计算机中,并由计算机加工处理计算机加工处理的符号集合。数据元素数据元素 Data Element 表示一个事物的一组数据称作一个数据元素。如学生信息可包括:学号、姓名、性别等。本讲稿第十五页,共五十一页第一章 绪论数据结构数据结构
9、=数据数据+结构结构 记作记作 Data_Structure=(D,R)其中:其中:Data_Structure是数据结构的名称是数据结构的名称 D是数据元素的有限集合(一般为一个数据对象)是数据元素的有限集合(一般为一个数据对象)R是是D上关系的有限集上关系的有限集注:这里说的数据元素之间的关系是指元素之间本身固有的逻辑注:这里说的数据元素之间的关系是指元素之间本身固有的逻辑关系,与计算机无关。关系,与计算机无关。因此又称为:数据的因此又称为:数据的逻辑结构逻辑结构1.1 数据结构的概念 我们研究数据结构的目的是要利用数据之间的关系(结构),因此,我们研究数据结构的目的是要利用数据之间的关系
10、(结构),因此,在存储时既要存储在存储时既要存储数据数据本身,还要存储本身,还要存储关系关系!本讲稿第十六页,共五十一页第一章 绪论数据在计算机中的存储:数据在计算机中的存储:两种形式两种形式 连续:连续:数据元素逐个连续存放(通过物理相邻来表示关系)非连续:非连续:数据元素不连续存放(如何表示关系?)数据的存储结构数据的存储结构:是数据结构在计算机内的表示,它包括数据:是数据结构在计算机内的表示,它包括数据元素的表示和关系的表示。元素的表示和关系的表示。这样:一个数据结构要存放,一方面一方面要把数据元素存起来要把数据元素存起来,另一方面,还必须把数据元素之间的逻辑关系也表示出来还必须把数据元
11、素之间的逻辑关系也表示出来,那么:要么用数据元素在物理上的相邻来表示逻辑关系用数据元素在物理上的相邻来表示逻辑关系 要么用数据元素的存储地址、索引表、散列函数来表示逻辑关系用数据元素的存储地址、索引表、散列函数来表示逻辑关系顺序存储结构链式存储、索引存储、散列存储1.1 数据结构的概念本讲稿第十七页,共五十一页第一章 绪论1.2.1 数据类型数据类型 Data Type 一个值的集合值的集合和定义在这个值集上的一组操作一组操作的总称。(1)高级语言中的数据类型实际上包括:数据的逻辑结构逻辑结构、数据的存储结构存储结构及所定义的操作操作的实现。(2)高级语言中的数据类型按值的不同特性分为:原子类
12、型原子类型(如整型、实型、字符型、布尔型)结构类型结构类型(由原子类型按照一定的规则构造而成,如数组、结构体)(3)数据类型逻辑概念与其在计算机程序中的实现有很重要的区别,例如线性表数据类型有两种传统的实现方式:基于数组的顺序表示顺序表示和基于链表的链式表示链式表示;(4)我们可以撇开计算机不考虑,现实中的任何一个问题都可以 定义为一个数据类型称为抽象数据类型。抽象数据类型。1.2 数据结构的抽象形式本讲稿第十八页,共五十一页第一章 绪论1.2.2 抽象数据类型抽象数据类型(Abstract Data Type 简写:简写:ADT)一个数学模型数学模型及定义在这个模型上的一组操作(或运算)一组
13、操作(或运算)的总称。抽象:抽象:抽象的本质是抽取反映问题本质的东西,舍去复杂系统中非本质的细节。使设计者可以从抽象的概念出发,从整体上考虑。在思考一个复在思考一个复杂问题问题的的解决方案解决方案时,首先,首先应考考虑将它将它抽象抽象简化,否化,否则很很难理解或者理解或者实现它它!1.2 数据结构的抽象形式说明:抽象数据类型通常是指由用户定义,用以表示应用问题的数学模型,由基本的数据类型组成,并包括一组相关的服务。本讲稿第十九页,共五十一页第一章 绪论1.2 数据结构的抽象形式抽象数据类型=数学模型+操作 (其它教材上对ADT的描述)=数据结构+操作 =数据+结构+操作 它是一种描述用户和数据
14、之间接口的抽象模型,亦即它给出了一种用户自定义的数据类型。三元组表示:(三元组表示:(D,R,P)其中其中D是数据对象,是数据对象,R是是D上的关系集,上的关系集,P是对是对D的基本操作集。的基本操作集。ADT 抽象数据类型名抽象数据类型名 数据对象:数据对象:数据关系:数据关系:基本操作:基本操作:ADT 抽象数据类型名抽象数据类型名抽象数据类型的作用:抽象数据类型可以使我们更容易描述现实世界。例:用抽象数据类型的作用:抽象数据类型可以使我们更容易描述现实世界。例:用线性表描述学生成绩表,用树描述棋局关系等。线性表描述学生成绩表,用树描述棋局关系等。本讲稿第二十页,共五十一页内容回顾:1.数
15、据结构=数据+结构=(D,R)2.结构包括:逻辑结构:集合、线性、树型、图物理结构(存储结构):连续、非连续3.数据类型:(D,R,P)4.抽象数据类型:(D,R,P)区别?本讲稿第二十一页,共五十一页第一章 绪论1.3 作为ADT的C+类1.3.1 面向对象的概念面向对象面向对象=对象类继承通信对象类继承通信对象:在应用问题中出现的各种实体、事件、规格说明等。由一组属性值和在这组值上的一组服务(或称操作)构成。类(class),实例(instance)具有相同属性和服务的对象归于同一类,形成类。类中的一个对象为该类的一个实例。本讲稿第二十二页,共五十一页继承:是面向对象方法最有特色的方面。派
16、生类:载重车,轿车,摩托车,子类、特化类(特殊化类)基类:车辆 父类、超类、泛化类(一般化类)各派生类中的公共部分,包括属性和服务,集中到基类中,派生类中只保留自己特有的属性和服务。这样减少了数据的存储和程序代码的重复。通信 各个类的对象间通过消息传递进行通信。消息:一个类的对象要求另一个类的对象执行某个服务的指令,必要时还要传递调用参数。本讲稿第二十三页,共五十一页第一章 绪论 传统的大型传统的大型结构化程序设计是结构化程序设计是面向过程的,首先着眼于系统要实现的面向过程的,首先着眼于系统要实现的功能功能。一个数据结构可能被多个过程调用,修改数据结构,意味着必须修。一个数据结构可能被多个过程
17、调用,修改数据结构,意味着必须修改相关的过程,这样做烦琐又容易产生错误。改相关的过程,这样做烦琐又容易产生错误。面向对象程序设计(面向对象程序设计(Object-Oriented Programing,OOP)程序围)程序围绕被操作的数据来设计,绕被操作的数据来设计,“类类”作为构造程序的基本单位。作为构造程序的基本单位。“类类”具有封装、数据抽象、继承和多态等特点!具有封装、数据抽象、继承和多态等特点!1.3 作为ADT的C+类本讲稿第二十四页,共五十一页第一章 绪论1.3.2 C+中的类中的类例例1:计算圆的周长和面积:计算圆的周长和面积 圆是平面上与圆心等距离的所有点的集合。从图形显示角
18、度看,圆的抽象数据类型包括圆心和半径;而从计量角度看,它所需要的抽象数据类型只需半径即可。如果从计量角度来给出圆的抽象数据类型,那么它的数据取值范围应为半径的取值范围,即为非负实数,而它的操作形式为确定圆的半径(赋值);求圆的面积;求圆的周长。1.3 作为ADT的C+类本讲稿第二十五页,共五十一页第一章 绪论问题描述:问题描述:给定圆的半径,求其周长和面积ADT定义:定义:ADT circle data:0 r,实数 structure:NULL operations:area 计算面积 s=r2 circumference 计算周长 l=2r END ADT 1.3 作为ADT的C+类本讲稿
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 精选 文档
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内