二进制—>基本数据类型—>抽象数据类型
在冯诺曼的计算机体系结构中,所有的数据在计算机中都是以二进制的形式存在的,所以对计算机的存储设备来说,并没有数据类型这种东西。但是人们为了方便使用计算机处理数据并合理分配内存空间(因为不同的数据在计算机中占用不同的内存空间,为了合理使用内存空间,就必须对数据加以区分),就不断发展出了各种计算机语言。比如像汇编语言这种低级语言,在使用数据定义伪指令定义变量时,直接定义了变量在内存中占用的空间,通过数值表达式的方式区分变量。为了增加计算机语言的可读性,方便用户使用,于是出现了高级计算机语言,高级编程语言就直接定义了基本数据类型,我们不需要了解它内部是如何组成的,内存空间的管理分配也不需要我们去做,直接拿来用就可以了。而当表示复杂数据对象时,仅使用几种基本数据类型显然是不够的,便出现了抽象数据类型,用户可以使用抽象数据类型表示数据以及对数据的操作。
什么是数据结构?
数据结构是相互之间存在一种或多种特定关系的数据元素的集合,简单的说是计算机中存储、组织数据的方式。其包括逻辑结构和物理结构。
逻辑结构:逻辑结构是指数据元素之间的逻辑关系,独立于数据在计算机的存储方式,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。逻辑结构又分为线性结构(数组、链表、栈、队列)和非线性结构(树、图)。
物理结构:物理结构需要借助于计算机语言实现,决定数据是如何在计算机内存中存储的。数据的存储结构主要有:顺序存储、链式存储、索引存储和散列存储。
数据类型与数据结构有什么关系?
数据类型以代码的方式实现了数据结构,代码编写的逻辑是借助数据结构的逻辑结构实现的,而借助这种逻辑结构实现的代码在计算机中运行后(运算处理数据),代码所处理后的数据在计算机中的存储方式也确定了,即实现了数据结构的物理结构。所以数据类型包含了数据类型(逻辑结构与物理结构)以及对数据的运算。
(以上为个人学习过程中个人理解,如理解有误,欢迎指出!)