数据结构与算法绪论概念.ppt
《数据结构与算法绪论概念.ppt》由会员分享,可在线阅读,更多相关《数据结构与算法绪论概念.ppt(46页珍藏版)》请在三一办公上搜索。
1、数据结构与算法,教材与参考书,教材:数据结构(C语言版)严蔚敏 吴伟民编著,清华大学出版社,2006参考书:(1)数据结构(C语言篇)习题与解析 李春葆编著,清华大学出版社,2001(2)数据结构课程实验 徐孝凯编著,清华大学出版社,2005(3)数据结构与算法 齐德昱编著,清华大学出版社,2003.10,课程的内容 数据结构经典的算法考核作业+实验+考试,数据结构与算法,1.1 什么是数据结构 数据结构问题起源于程序设计的发展。程序设计现在已经历了三个阶段:无结构阶段 1940s1960s,科学计算。结构化程序设计阶段 1960s末1980s 提出程序结构模块化,模块内以顺序、分支、循环为主
2、。应用于非数值领域。,第一章 绪论,1.1 什么是数据结构,注意到数据表示与操作的结构化,程序中常用的一些数据表示,如表、栈、队、树、图等被单独列出研究。面向对象阶段(Object Oriented DS)兴起于1980s初,1990s流行。对象描述实体的属性与操作,是二者的封装体。面向对象技术实质上是数据结构概念的自然扩展与继续,对象包含数据结构中的主要因素数据成分与操作。数据结构的发展面向各专门领域中特殊问题的数据结构得到研究和发展。从抽象数据类型的观点来讨论数据结构。,例 计算机管理家谱,家谱管理主要实现家庭成员登记、查询及变更处理等。假定只考虑家庭中的父子关系。实体对象是人(家庭成员)
3、,关系是父子关系。每个实体用一个记录(元素)表示,包含姓名、出生日期、性别、死亡日期等。为了表示父子关系,在实体记录中可增加若干字段,每个字段用于指示一个儿子/女儿。一个家族就构成了一个层次结构。在数据结构中,该层次结构称为树。图1.1位于某结点下方的与其相连的各个结点,表示该结点的子女。,例家谱结构图,1.2 基本概念和术语,数据:所有能输入到计算机中并被计算机程序处理的符号的总称(包括数字、字符、声音、图像等信息)。数据类型:数据类型定义为:一个值的集合和定义在这个值集上的一组操作的总称。数据元素:能独立、完整地描述问题世界中的实体的最小数据单位称为数据元素(也称记录)。构成数据元素的不可
4、分割的数据单位,称为数据项(也称字段)。数据对象:性质相同的数据元素的集合,是数据的一个子集(如整数数据对象)。,数据结构,结构:把数据元素之间的关系。数据结构:同一数据元素类中各数据元素之间存在的关系。数据结构三个组成部分:数据的逻辑结构 数据的物理结构 数据的运算(操作)逻辑结构:对数据之间关系的描述。物理结构:指数据该如何在计算机中存放,是数据逻辑结构的物理存储方式。物理结构是逻辑数据的存储映象,数据结构的形式化定义,(不考虑定义在数据结构上的操作)数据结构是一个二元组(D,S),其中D(data)是数据元素的有限集,S(struct)是D上的关系的有限集。数据元素之间的关系采用集合论中
5、关系的形式化描述方法来定义。型为的二元关系中,我们称d1为关系的前件,d2为后件。称d2为d1的后继(subsequence),而d1为d2的前驱(previous)。,数据结构的图示,用小圆圈代表数据元素。用小圆圈之间的连线代表小圆圈对应的数据元素之间的关系,如果强调关系的方向性,可用带箭头的线段表示关系。如:若d1和d2表示两个数据元素,它们具有关系d1,d2,则表示为:,d1,d2,数据结构的分类,由数据元素间关系的不同特性,有下列四类基本的结构:集合结构。数据元素间的关系是“属于同一个集合”。集合是元素关系极为松散的一种结构。(set)线性结构。该结构的数据元素之间存在着一对一的关系。
6、(linear)树型结构。该结构的数据元素之间存在着一对多的关系。(tree)图形结构。该结构的数据元素之间存在着多对多的关系,图形结构也称作网状结构。(graph),集合,如果数据结构中,数据元素之间不考虑关系问题(无前驱/后继之分),则称这种结构为集合。在集合中,各元素是“平等”的,它们的共同关系是:都属于同一个集合,无其他关系。,集合结构,线性结构,如果数据结构中,数据元素之间只存在前后顺序关系(每个元素都有唯一前趋和后继,第一个元素可以没有前驱,最后一个可以没有后继),则称这种结构为线性结构。线性结构是一种最常见的数据结构。线性表、栈、队列、串等均为线性结构。下图表示的数据结构可表示为
7、:DS=(D,S)D=d1,d2,dn S=r r=,线性结构,树形结构,如果除一个特殊元素没有前驱外,其他每个元素都有唯一的前驱(后继个数不限),则称该结构为树型结构(简称树)。其中,将无前驱的元素称为树根。用图表示树时,通常习惯将树根画在最上面。某元素的各后继画在该元素的下面,且连线不带箭头,隐含着从上到下。这样,树型结构就象用一棵倒立的树。图 11就是一个树的例子,它代表的结构的形式描述为:DS=(D,S)D=W1,W11,W12,W13,W111,W121,W122,W131,W132,W133,W1111,W1112,W1221S=rr=,图状结构,在图状结构中,任一数据元素,均可有
8、多个前趋和多个后继。该种结构也称网状结构。图状结构表达能力最强,它可表达任意复杂的数据结构。例如,交通图就是一种图状结构,结点代表城市,连线(关系)代表城市间的道路。树形结构与图状结构均称为非线性结构。,数据结构的存储存储结构,存储器表示问题 数据结构的存储问题,一般指内存。大多数高级语言支持的访问存储器的方式是相当高级的,隐蔽了存储器的许多特性,不利于表示数据的存储结构。许多高级语言都提供按数组访问存储器的方式。数组很接近存储器,所以我们决定用高级语言中的数组模拟计算机存储器。C/C+中的指针的概念相当接近内存的地址。,存储结构,数据结构的存储映象:数据结构在计算机中的存储方式。两方面:内容
9、存储:数据结构中的各数据元素的内容(数据),都分别存储在一个独立的可访问的存储区中;关系存储:数据元素的存放方式方法,必须能显示地或隐式地体现数据元素间的逻辑关系。,基本存储方法,(1)顺序存储这是一种主要面向线性关系的存储方法。对线性数据结构,可将其数据元素,按相应的线性关系下的前后次序,存储在物理存储器中,使得数据元素在此线性关系下的逻辑次序与它们在存储器中的存放次序一致。这种存储方式称为顺序方法(也称连续方法)。数据元素之间的线性关系由它们的存储次序体现,而不需要专门存储。,例 数据结构DS=(D,S)的顺序存储,其中,D=d1,d2,d3,d4,S=r,r=,D中每个元素需占用两个存储
10、单元,则该结构的顺序存储结构如下图所示(称存储结构图).,二、链式存储,每个数据元素的存储区分两大部分,第一部分为数据区,存储元素的内容,第二部分为指针区。(存放该数据元素与其它数据元素之间的关系信息,这种关系信息一般为地址)例 对上例中的数据结构,它的一种链式存储结构如表 11所示。在该表中,假定每个元素占2个存储单元,第一个存储元素内容,第二个存储关系。这里,关系用后继地址描述,元素x的“关系指示”中存放x的后继的地址。,线性结构链式存储(图示),数据元素的存储区之间,可以是连续的,也可不连续。,三、索引存储,索引存储是面向检索操作。它主要是在数据结构的数据区外,增加一个或若干个索引区。用
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 算法 绪论 概念
链接地址:https://www.31ppt.com/p-6578876.html