数据结构与程序设计.ppt
《数据结构与程序设计.ppt》由会员分享,可在线阅读,更多相关《数据结构与程序设计.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 数据结构与算法数据结构与算法 林小拉林小拉电话:电话:8411 2133Email: 课程安排课程安排讲授授3学学时/周,周,实验2学学时/周周(分组)总成成绩:平平时(听(听课、作、作业、期中期中)+期末期末教学用教学用书:Robert L.Kruse and Alexander J.Ryba“Data Structures and Program Design in C+”,高教,高教出版社,出版社,2001年年参考参考书:1数数据据结构构,许卓卓群群,张乃乃孝孝,杨冬冬青青,唐唐世世渭渭,高高等教育出版社,等教育出版社,1987年年 2.数数据据结构构C+与与面面向向对象象的的途途径径
2、,张乃乃孝孝,裘裘宗宗燕燕,高等教育出版社,高等教育出版社,1998年年 3数数据据结构构(C语言言版版),严蔚蔚敏敏、吴吴伟民民,清清华大大学学出版社,出版社,1997年年 4.数数据据结构构与与算算法法,王王若若梅梅等等著著,中中山山大大学学出出版版社社,2000年年为什么学习数据结构为什么学习数据结构计算机科学是计算机科学是-“一种关于信息结构转换的科学一种关于信息结构转换的科学”(Wegnor)Input Output-“算法的学问算法的学问,算法是精确定义的一系列规则算法是精确定义的一系列规则,指指出怎样从给定的输入信息经过有限步骤产生所出怎样从给定的输入信息经过有限步骤产生所求的输
3、出信息求的输出信息”(Knuth)信息结构信息结构(数据结构数据结构)和算法是计算机科学的核心和算法是计算机科学的核心课题课题.两者之间有着本质的联系两者之间有着本质的联系.数据结构数据结构+算法算法=程序程序 Computer system程序程序 =算法算法 +数据结构数据结构 数据数据结构:构:一种程序构件(一种程序构件(programming construct)、工具工具;编程中常用的数据程中常用的数据组织形式及其操作的形式及其操作的抽象抽象;编程:程:数据数据结构的构的选择,算法的算法的设计与度量与度量教学目的教学目的掌握常用的数据掌握常用的数据结构及其构及其应用用学会合理地学会合
4、理地组织数据,有效地表示数据和数据,有效地表示数据和处理理数据数据掌握算法掌握算法设计技技术和分析技和分析技术提高程序提高程序设计质量量第一章第一章 概论概论 q什么是数据什么是数据结构构q抽象数据抽象数据类型型q算法的概念算法的概念q算法的度量算法的度量 数据结构示例 数据结构的概念 数据的逻辑结构 数据的存储结构什么是数据结构什么是数据结构-示例示例1 例例1 图书馆的的书目自目自动检索系索系统 所所处理的基本数据(理的基本数据(数据元素数据元素):):每本每本书由(登由(登录号,号,书名,名,作者,出版社作者,出版社,分分类号号)组成;成;数据元素数据元素间的关系(的关系(逻辑结构构):
5、):一个按登一个按登录号号顺序排列的序排列的书目表和按目表和按书名、作者和分名、作者和分类号号顺序排列的索引表;序排列的索引表;所需的所需的操作操作:一一组作用在作用在这些表上的运算(些表上的运算(查询、插入、修改等);、插入、修改等);怎怎样存存储这些数据及其关系使得上述操作容易些数据及其关系使得上述操作容易实现存存储结构构。什么是数据结构什么是数据结构-示例示例2 例例 2 人机人机对弈弈问题(三子棋)。(三子棋)。数据元素数据元素:格局(某格局(某时刻的棋刻的棋盘布局);布局);格局之格局之间的关系的关系:一个格局可以派生出几个下一个格:一个格局可以派生出几个下一个格局(局(树状状结构,
6、博弈构,博弈树););操作操作:由某个格局出:由某个格局出发,借助于以上的格局,借助于以上的格局树(显式式地或非地或非显式地)找出式地)找出计算机算机赢的步的步骤;存存储结构构:如何存:如何存储格局及其格局格局及其格局间的关系。的关系。什么是数据结构什么是数据结构-示例示例3例例 3 3 多岔路口的交通灯管理系多岔路口的交通灯管理系统。BACDE数据元素数据元素:通路,:通路,如:如:A-BA-B通路间的关系通路间的关系(图):通路为结点,(图):通路为结点,两节点相邻,如果两通路不能同时两节点相邻,如果两通路不能同时通行。通行。操作操作:上图的着色问题:用最少的颜色,对每个节:上图的着色问题
7、:用最少的颜色,对每个节点着色,相邻节点着不同的颜色。点着色,相邻节点着不同的颜色。存储存储:如何存储通路间的关系:如何存储通路间的关系。第一章第一章 概论概论 q什么是数据什么是数据结构构q抽象数据抽象数据类型型q算法的概念算法的概念q算法的度量算法的度量 数据结构示例 数据结构的概念数据结构的概念 数据的逻辑结构 数据的存储结构数据结构的概念数据结构的概念数据数据是客是客观事物的符号表示,是信息的事物的符号表示,是信息的载体体数据元素数据元素是数据的基本是数据的基本单位位 数据数据结构是相互构是相互间具有某些关系的数据元素的具有某些关系的数据元素的集合。它包括下面三方面的内容:集合。它包括
8、下面三方面的内容:1 1)数据的数据的逻辑结构构,表示数据元素表示数据元素间的关系;的关系;2 2)数据的运算数据的运算,是数据元素集上所允是数据元素集上所允许的操作;的操作;3 3)数据的存数据的存储结构构,指如何在指如何在计算机上数据元素算机上数据元素及其关系。及其关系。第一章第一章 概论概论 q什么是数据什么是数据结构构q抽象数据抽象数据类型型q算法的概念算法的概念q算法的度量算法的度量 数据结构示例 数据结构的概念 数据的逻辑结构数据的逻辑结构 数据的存储结构数据的逻辑结构数据的逻辑结构 数据的数据的逻辑结构是一个二元构是一个二元组(D,R),D 是数是数据元素的有限集,据元素的有限集
9、,R 是是D上关系的有限集;上关系的有限集;例如,在示例例如,在示例3中,中,D=AB,AC,AD,BA,BC,BD,DA,DB,DC,DA,EB,DC,EDR=R1R1=(AB,EA),(AB,BD),(AB,DA),(AB,BC),逻辑结构的类型逻辑结构的类型我我们将将讨论 R 含有一个关系的情况含有一个关系的情况,即即 R=R1.根据根据R1的特性的特性,数据数据结构构(D,R1)可分可分为下列几种下列几种:D=d1,d2,dn 1.集合集合:数据元素同数据元素同“属于一个集合属于一个集合”.R1=2.线性性结构构:R1=(d1,d2),(d2,d3),(d(n-1),dn),即除开始和
10、即除开始和终结节点点d1,dn外外,每个每个节点有点有一个前一个前驱和一个后和一个后继3.树状状结构构:(D,R1)构成构成树,即每个元素最多有即每个元素最多有一个前一个前驱,可以有多个后可以有多个后继4.图状状结构构:(D,R1)构成一个构成一个图.第一章第一章 概论概论 q什么是数据什么是数据结构构q抽象数据抽象数据类型型q算法的概念算法的概念q算法的度量算法的度量 数据结构示例 数据结构的概念 数据的逻辑结构 数据的存储结构数据的存储结构数据的存储结构数据的存储结构 数据(数据(逻辑)结构的存构的存储包含包含数据元素的存数据元素的存储及其及其逻辑关系关系的存的存储设M M为内存的一片存内
11、存的一片存储区域区域.将数据将数据结构存构存储到到计算机内算机内,我我们需要建立一个映射需要建立一个映射(存储映像):):S :D-M S :D-M 即即对于于D D中的每个数据元素中的每个数据元素d,S(d)M,d,S(d)M,并并且且这个映射具有明个映射具有明显地或者地或者隐含地体含地体现R R的能力的能力.根据存根据存储映像的特点映像的特点,存存储结构可分构可分为:顺序存序存储结构、构、链式存式存储结构、索引和散列构、索引和散列等。等。存储结构的分类存储结构的分类:顺序结构顺序结构 顺序的方法序的方法:将将逻辑上相上相邻的元素存的元素存储到物理上相到物理上相邻的存的存储位置位置.常用于常
12、用于线性的数据性的数据结构构.例如例如,D=d1,d2,d3,d4,d5,D=d1,d2,d3,d4,d5 R=(d1,d2),(d2,d3),(d3,R=(d1,d2),(d2,d3),(d3,d4),(d4,d5)d4),(d4,d5)假定一个假定一个结点占一个点占一个单元元,d1 d1存放于存放于200200号号单元元.d1d2d3d4d5200201202203204存储结构的分类存储结构的分类:链式结构链式结构 这种种结构是构是给结点附加一个指点附加一个指针字段字段,指出其后指出其后继节点的位置点的位置,即存放即存放结点的存点的存储单元分元分为两部分两部分:数据项指针项指针项可以有多
13、个,以指示多个后继.例如,R=(d1,d2),(d1,d3),(d2,d4),(d2,d5),(d3,d6)d1d2d3d6d5d4d1d2d3d4d5d6空指针索引索引(Indexing)的方法的方法在在线性性结构中,将每个构中,将每个节点的序号作点的序号作为其索引号。其索引号。索引的存索引的存储结构就是用构就是用节点的索引号来确定点的索引号来确定节点的存点的存储地址。地址。数据存储区12345索引表存储索引号及地址M存储映像:Z-M假假设每个每个节点占用点占用p p个个单元且元且顺序存序存储,q q为开开时节点的存点的存储位置,那么第位置,那么第 i i 个个节点的存点的存储位置位置为 (
14、i-1)*p+qi-1)*p+q存存储映像可以是非映像可以是非线性的。性的。散列(散列(hashing)的方法的方法 散列的方法是用散列的方法是用结点的点的值来确定其地址。来确定其地址。假假设每个数据元素都有一个关每个数据元素都有一个关键字,字,K K是关是关键字的集字的集合。函数:合。函数:称称为散列函数。最好的散列函数最好的散列函数应满足不同的关足不同的关键字具有不同的地址。字具有不同的地址。如果不同的关如果不同的关键字字对应的地址相同,的地址相同,则称称为“碰撞碰撞”(冲突)。(冲突)。h:K-M以上四种方法可以以上四种方法可以组合使用。例如,合使用。例如,先用散列的先用散列的方法存方法
15、存储表,表,发生碰撞生碰撞时,用一个用一个链表存表存储所有所有的同的同义词。逻辑结构相同,但存构相同,但存储结构不同,构不同,则认为是不同是不同的数据的数据结构。构。如如顺序表和序表和链表具有相同的表具有相同的逻辑结构,但存构,但存储结构分构分别为顺序序结构和构和链表表结构。构。第一章第一章 概论概论q什么是数据什么是数据结构构q抽象数据抽象数据类型型q算法的概念算法的概念q算法的度量算法的度量数据类型数据类型(Data Type)一般的高一般的高级语言都提供了一些言都提供了一些数据数据类型型,如整数如整数型型,字符型等字符型等.数据数据类型是一个型是一个值的集合和定的集合和定义在此集合上的一
16、在此集合上的一组操作的操作的总称称.用用户还可以定可以定义自己的数据自己的数据类型型.数据数据类型可分型可分为原子类型(不可分解的不可分解的,如如int,int,bool,char bool,char 等等)和和结构类型(由其他由其他类型构成型构成)数据数据类型型为程序程序员提供了极大的方便提供了极大的方便:它将数据它将数据集合及其上的操作与其集合及其上的操作与其实现细节分离开来来,或者或者说将将数据的数据的逻辑表示和运算表示和运算与它与它们的的实现相分离。相分离。程序程序员只需要了解此集合由哪些只需要了解此集合由哪些值构成构成,可以可以进行那些运算行那些运算.抽象数据类型抽象数据类型(ADT
17、)我我们把数据元素集合把数据元素集合(或者一个数据模型或者一个数据模型)及其上的及其上的一一组操作的数学操作的数学说明称明称为抽象数据抽象数据类型型(Abstract(Abstract Data Types),Data Types),常用常用ADTADT表示。表示。例如,表示例如,表示圆的的ADTADT:数据模型:表示数据模型:表示圆的半径和的半径和圆心的三个心的三个实数;数;操作:构造一个操作:构造一个给定定圆心和半径的心和半径的圆;求;求圆的面的面积等等一个数据一个数据结构是一个构是一个ADTADT的的实现。现代程序代程序设计使用信息使用信息隐蔽和数据封装,使得蔽和数据封装,使得ADTAD
18、T的的使用和使用和实现相分离,相分离,ADTADT的使用和的使用和 ADTADT的的实现可以同可以同时进行,行,ADTADT实现的修改不影响的修改不影响ADTADT的使用。的使用。本本课程介程介绍的数据的数据结构将由抽象数据构将由抽象数据结构描述构描述.ADT在在OO语言中的实现语言中的实现在在C+C+中,一个中,一个ADTADT与其与其实现构成一个构成一个class,class,或者或者说抽象数据抽象数据类型可以由型可以由C+C+的的类来描述,来描述,ADTADT的每个的每个运算运算对应一个成一个成员函数。函数。例如,表示例如,表示圆的的class class Circle private:
19、float r,x,y;public:Circle(float v1,float v2,float v3);float area()=return pi*r*r;一个抽象数据一个抽象数据类型中的数据元素集可以是任意型中的数据元素集可以是任意时,即即多态ADTADT,这样的的ADTADT可用可用template来描述。来描述。第一章第一章 概论概论q什么是数据什么是数据结构构q抽象数据抽象数据类型型q算法的概念算法的概念q算法的度量算法的度量算法的概念算法的概念一个一个算法算法是是对特定特定问题求解步求解步骤的一种描述的一种描述,它是指它是指令的有令的有穷序列序列.算法具有以下特性算法具有以下特
20、性:1)1)有有穷性性:一个算法一个算法总是在是在执行有行有穷步后步后结束束 2)2)确定性确定性:算法的每一步都必算法的每一步都必须是明确地定是明确地定义的的.3)3)可行性可行性:算法中的每一步都是可以通算法中的每一步都是可以通过已已经实现的操作来完成的的操作来完成的 4)4)输入入:一个算法有零个或者多个一个算法有零个或者多个输入入,这些些输入入取自于特定的取自于特定的对象集合象集合 5)5)输出出:一个算法有一个或者多个一个算法有一个或者多个输出,它出,它们是与是与输入有特定关系的量入有特定关系的量算法的描述算法的描述算法的描述可以用下列算法的描述可以用下列语言描述:言描述:自然自然语
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 程序设计
限制150内