算法与数据结构-第一章:数据结构绪论

 

本人所使用学习材料为《大话数据结构》本书作者:程杰

此书总共九章,我打算每一章写作一篇文章,既不多也不少。

1.什么是数据结构。

数据结梅:是相互之间存在一种或多种特定关系的数据元素的集舍。

 

逻辑结构与物理结构
 

1.逻辑结构

逻辑结构:是指数据对象中数据元素之间的相互关系。
 

逻辑结构的4个种类:

1.1 集合结构

集合结构:集合结构中的数据元素除了 同属于一个集合外,它们之间没有其他关
系。
 

1.2 线性结构

线性结构:线性结构中的数据元素之间是一对一的关系。
 

1.3 树形结构

 

树形结构:树形结构中的数据元素之间存在一种一对多的层次关系 。
 

1.4 图形结构

图形结构:图形结构的数据元素是多对多的关系。

 

2.物理结构

 

也有另外一种叫法:储存结构。

物理结构:是指数据的逻辑结构在计算机中的存储形式。

 

2.1 . 顺序存储结构


顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关
系和物理关系是一致的 。

我觉得原书解释的非常好,所以直接复制黏贴过来:

这种存储结构其实很简单,说白了 , 就是排队占位。大家都按顺序排好,每个人
占一小段空间,大家谁也别插谁的队 。 我们之前学计算机语言时,数组就是这样的顺序存储结构。当你告诉计算机,你要建立一个有 9 个整型数据的数组时,计算机就在内存中找了片空地, 按照一个整型所占位置的大小乘以 9 ,开辟一段连续的空间,于是第一个数组数据就放在第-个位置,第二个数据放在第二个,这样依次摆放。


2.2链式存储结构

原书对于这种关系解释的也很到位,直接复制黏贴:

香港有部电影叫 《无间道》,大陆还有部电视剧叫 《潜伏》,都很火,不知道大家有没有看过 。 大致说的是,某一方潜伏在敌人的内部,进行一些情报收集工作。为了不暴露每个潜伏人员的真实身份,往往都是单线联系,只有上线知道下线是谁,并且是通过暗号来联络。正常情况下,情报是可以顺利地上传下达的,但是如果某个链条中结点的同志牺牲了,那就麻烦了,因为其他人不知道上钱或者下钱是谁,后果就很严重. 比如在 《无间道》 中,梁朝伟是警方在黑社会中的卧底,一直是与黄秋生扮演的警官联络,可当黄遇害后,梁就无法证明自己是一个警察。所以影片的结尾, 当 梁朝伟用枪指着刘德华的头说,"对不起,我是警察 。 "刘德华马上反问道 :“谁知道呢? "是呀,当没有人可以证明你身份的时候 , 谁知道你是谁呢?影片看到这里,多少让人有些唏嘘感慨。 这其实就是链式关系的一个现实样例。

 

3.抽象数据类型

 

数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。


在计算机中,内存也不是无限大的 ,你要计算一个如 1+1=2 、 3+5=8 这样的整型数字的加减乘除运算,显然不需要开辟很大的适合小数甚至字符运算的内存空间。于是计算机的研究者们就考虑,要对数据进行分类,分出来多种数据类型 。
其实简单来说,就是计算机语言中的int,long这种数据定义。

 

4. 抽象数据类型
 

抽象数据类型  : 是指一个数学模型及定义在该模型上的一组操作。抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关。


各个计算机,不管是大型机、小型机、 町、平板电脑、 PDA .甚至智能手机都拥有 "整数"类型,也需要整数阔的运算,那么整型其实就是一个抽象数据类型,尽管它在上面提到的这些在不同计算机中实现方法上可能不一样,但由于其定义的数学特性相向,在计算机掬程者看来,它们都是捆同的。因此, "抽象'的意义在于数据类型的数学抽象特性 。

而且,抽象数据类型不仅仅指那些已经定义并实现的数据类型,还可以是计算机编程者在设计软件程序时自己定义的数据类型,比如我们编写关于计算机绘图或者地图类的软件系统,经常都会用到坐标。也就是说,总是有成对出现的 x 和 Y 。在 3D系统中还有 z 出现,既然这三个整型数字是始终在一起出现,我们就定义一个叫 point的抽象数据类型,包有 x、 y、 z 三个整型变量,这样我们很方便地操作一个 point 数据变量就能知道这一点的坐标了。
 

抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。抽象数据类型把实际生活中的问题分解为多个规模小且窑易处理的问题 , 然后建立一个计算机能处理的数据模型,并把每个功能模块的实现细节作为一个独立的单元 ,从而使具体实现过程隐藏起来。
 

描述抽象数据类型的标准格式:

ADT   抽象数据类型名
Data   数据元素之间逗得关系的定义

Operation

操作1
        初始条件
        操作结果描述
操作2
      .....
操作n
      .....
endADT

 

总结:本章主要内容

,数据类型与抽象数据类型的描述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值