数据结构基础概念录

前言

回忆与自我理解迭代

概念

数据:
什么是数据?
是描述客观事物的符合,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

个人理解:

以人来说,把人感知的一切都叫做数据,比如说树、花。他们在我们心中代表一种符号。但是并不代表我们不认识的,就不叫数据,他们在我们心中的符合是不认识,这依然是一个符合。

数据元素:

是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。

这个比较抽象,而且没有具体的指向。比如我们把一个班级的人作为数据研究对象,那么数据元素就是人,因为是由人组成了班级的人。

关键点在于由什么组成,如果可以由什么组成那么就可以说是数据元素。

数据项:

一个数据元素可以由若干个数据项组成。

比如我们研究班级健康,数据元素自然就是人了。那么数据项是,眼、鼻子他们的数据。
比如研究班级身高,那么元素也就是人了,那么数据项就是身高

数据项是数据不可分割的最小单位。

数据对象:
是性质相同的数据元素的集合,是数据的子集。
当初我有点混淆了数据对象和数据,后来我就想明白了。
数据是可识别的符合,是一个整体的概念,计算机可识别都叫做数据。
数据对象,用我刚才的例子上说,研究一个班级,那么这个班级就是数据对象被,里面的人就是数据元素,他们当然就具有相同性质了,班级也就是人的集合。
这个数据的子集很让人误解,其实意思就是万物为宇宙(数据),其他的都是数据的子集。

数据结构:
是相互之间存在一种或者多种特定关系的数据元素的集合。
比如人之间有亲情等关系。

数据结构的物理逻辑:
是指数据的逻辑结构在计算机的存储形式。
顺序存储结构:
是把数据元素存放再地址连续的存储单元里,其数据间的逻辑关系和物理关系一致的。
链式存储结构:
把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。

逻辑结构:

是指数据对象中数据元素之间的互相关系。

常见的逻辑结构:
1.集合结构
2.线性结构
3.树形结构
4.图形结构

在这里提及一下我当初的一个疑问:

为什么物理结构基本都是一对一的关系,为什么逻辑结构是可以一对多呢?
比如说,数组是顺序存储结构,如果把第一个数当中父节点,设置为a,那么把2a+1就当作左节点,只是认为认为,物理上根本不知道。

数据类型与抽象数据类型:

一想到数据类型,可能我们第一时间想到的就是int,short,long这些。
是的,这些就是数据类型。

数据类型的定义:

是一组性质相同的值的集合及定义再此集合上的一些操作的总称。

为什么要有数据类型,这就涉及到为什么int32 占用4个字节。

如果没有数据类型的话,那么int32该申请多少内存呢?这时候就把int32定义了范围,一旦范围定义了,那么也就定义了所占用的空间。

数据类型分为两种:
原子类型:是不可以再分解的类型,包括整数、字符型等。
结构类型:是还以再分的,比如整数数组,里面具有整数类型。

抽象数据类型:是指一个数据模型及定义在该模型的操作。
比如说一个人,我们可以定义一个person 的类型,里面包括了手和脚,里面也有操作叫做跑步和洗衣服。
这时候person就是抽象的,是我们自己定义出来的,计算机也不知道这是person。
在抽象数据类型中,不是只有我们定义的才是抽象的,比如说整数类型,我们想到了int。
是的,在数据类型中,int中我们把他定义为一种数据类型。但是它再数据类型中并不代表整数。
关注数据类型,关心的是其值范围,比如说无符号 int32,范围为-2147483648~2147483647,然后可以的操作是什么。
如果把int当作一个整数,那么就是抽象数据结构,关心的是数据模型,整数是没有小数的,整数是有正负的,关心的是其特征。
总结:int是数据类型,而不是整型这个概念。抽象类型中,关心的是数据模型。

猜你喜欢

转载自www.cnblogs.com/aoximin/p/12387400.html