「数据结构」和「数据类型」两个概念的本质是什么样?现在大学程序代码查重的方法
严蔚敏编著的《数据结构》教材对数据结构的定义:
相互之间存在①种或多种特定关系的数据元素的集合。有人说,数据结构就是用来存放有特定关系的数据的容器。
数据类型是数据的①种分类,是按照数据结构来分类的。数据类型的出现是为了把数据分成所需内存大小不同的数据。
还是不太明白,貌似数据结构中包含了数据类型,而数据类型又建立在数据结构之上?
那么数组到底是①种数据结构还是①种数据类型呢?是不是除了线性表、队列、堆栈、树......这些,int char double 也可以看成①种简单的只有①个数据元素的数据结构呢?
其实严蔚敏编著的《数据结构》已经很好的回答了这个问题。
要理解这个问题先得具备以下③个基础概念,下方还会提及,这③个概念可以跳过不看:
数据结构:是相互之间存在①种或多种特定关系的数据元素的集合,包括逻辑结构和物理结构。数据类型:是①个值的集合和定义在这个值集上的①组操作的总称。抽象数据类型:是指①个数学模型以及定义在该模型上的①组操作。
解读这③个基础概念,也就是它们之间的关系。
数据结构和数据类型其实是所属关系,是什么样的所属关系呢?看图:
解释①下这张我自己绘制的图:
①种数据结构+定义在此种数据结构上的①组操作=结构类型
①种值的集合+定义在此种值的集合上的①组操作=原子类型
结构类型+原子类型=数据类型
以下是背景知识,很重要,当然不想细看的直接看段尾的①句话总结。
③个基础概念:
数据结构:是相互之间存在①种或多种特定关系的数据元素的集合,包括逻辑结构和物理结构。数据类型的定义是:是①个值的集合和定义在这个值集上的①组操作的总称。数据类型的分类是:原子类型和结构类型。
融合②和③基础概念和上图可得:数据类型的两种类型是按照定义中两种“值的集合”来区分的。结构类型就是“值的集合”是①种数据结构,例如线性表、树和图;而原子类型就是“值的集合”是原子类型,例如C语言中的基本类型(整型、实型、字符型和枚举类型)、指针类型和空类型。
①句话总结,数据结构是①种值的集合,这种值集+值集上的操作就是结构类型,而结构类型是数据类型中的①种,所以数据结构属于数据类型。
接下来解释数据类型和抽象数据类型的关系:
还是那句话,以下是背景知识,很重要,当然不想细看的直接看段尾的①句话总结。
两个基础概念:
数据类型:是①个值的集合和定义在这个值集上的①组操作的总称。抽象数据类型:是指①个数学模型以及定义在该模型上的①组操作
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息