算法与数据结构入门 自用笔记(1.2)

接着上次逻辑结构说,

物理结构

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

物理结构是相对于逻辑结构而言,它更为具体,它是按照实际的电脑内部存储安排,而逻辑结构是一种抽象的概念模型

物理结构有两种:链式存储顺序存储


一.  顺序存储结构

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

(图1.1)

举个简单的例子,例如排队,有3个人,从数字上来说,一号在二号前面,二号在三号前面,从实际排队的位置来说也是一号在二号前面,二号在三号前面,这样数据逻辑关系和物理关系对应的存储结构称为顺序存储结构


二.链式存储结构

链式存储结构:是把数据元素存放在任意的存储单元中,这些数据元素的物理位置可以连续也可以不连续

举个例子:10个人去银行取钱,先要取号,1-10号,拿到号之后他们的逻辑关系很明确,一号先来,接着二号,以此类推,但是他们不必按照1-10号的顺序站着排队,他们可以按照自己想要的位置随意坐,或者出去买个冰淇淋再回来也行,也就是说他们的物理位置不必连续

 (图1.2)

 每一个元素都可以根据他们的头尾指针(那张包含你前面那个人是谁后面那个人是谁的单)去找到前驱元素的地址(前面那个人)和后继元素的地址(后面那个人)


抽象数据类型

数据类型(data type):

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

创建数据类型的起因是为了将数据归类,让一系列拥有相同特征的数据和它们拥有的相同操作打包起来归为一类方便操作

比如说,现在有很多枚零钱,有一块硬币,五毛硬币,一角硬币,五毛纸币,一块纸币,五块纸币,此时,我们归类方式有很多种,

①可以按照种类打包,它们相同特征都是硬币或者纸币(硬币打一个包;纸币打一个包)

②可以按照数额打包,它们相同特征是面值(一块打一个包;五毛打一个包等等)

综上所述,对数据进行分类的方式取决于对数据需求和操作者的需要,


 在高级程序语言中数据类型可分为两种:

  • 原子类型(atomic data type):是不可再分割的类型,包括整型、实型、字符型等等。
  • 结构类型(structure type):是若干个类型组合而成,是可以再分解的,例如字符数组是由若干字符型数据组成

什么是整型?实型?字符型

此处的原子类型和结构类型可以类比化学中的概念,原子和化合物,不论任何一种原子在化学中都是不可再分的,按照原子打包即原子类型,而结构类型类比某一类化合物,每一个化合物都是由原子组成,他们都是可以再分解的


抽象:是指抽取事物所具有的的普遍性的本质

简单来说就是将细节忽略,只在意关键组成元素

举个例子就是,对课间操的操场数据进行抽象,抽象出来的有人数,在做什么,等等,而不关注每个人的细节穿什么衣服等等


抽象数据类型

抽象数据类型(Abstract  Data  Type ,ADT):是指一个数学模型及定义在该模型上的一组操作

 此处的抽象仅仅将该数据类型的模型的数学特征抽取放置

Eg:

ADT  抽象数据类型类名{

数据对象:<数据对象的定义>

数据关系:<数据关系的定义>

基本操作:<基本操作的定义>

}ADT  抽象数据类型类名 


ADT  学生们身高和身高操作{

数据对象:<数据对象的定义:身高都是实数>

数据关系:<数据关系的定义>

基本操作:<基本操作的定义:求平均啊,找最高,找最低>

}ADT  学生们身高和身高操作

总结


打卡

2019.5.18

错误指出,侵删!     ♪(・ω・)ノ

发布了43 篇原创文章 · 获赞 7 · 访问量 3371

猜你喜欢

转载自blog.csdn.net/Zeroooooo/article/details/90268623