计算机跨考选手刚刚学到了数据结构的绪论,感觉这块比较难以理解,分享一下自己的观点吧,还请大家多多指教~

严蔚敏教授编写的《数据结构》中对于以上三者的定义是:

1. 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合
2. 数据类型:是一个值的集合和定义在这个值集上的一组操作的总称。
3. 抽象数据类型: 是指一个数学模型以及定义在该模型上的一组操作。

数据结构的形式定义为:一个二元组,Data Structure = (D, S) 其中D是数据元素的有限集,S是D上关系的有限集。
抽象数据类型的形式定义为:一个三元数组,ADT = (D, S, P) 其中P是对D的基本操作集。

以下是我自己的理解:

数据结构的定义是一种对操作对象的数学描述,是从操作对象抽象出来的数学模型。这种数学模型只包括数据的逻辑结构而不包括存储结构(物理结构)和数据运算。而我们平常所说的数据结构的三要素是实现数据结构的条件。所以说定义了一个抽象数据类型就相当于定义了一个数据结构(包含了D、S),而没有真正的实现这个数据结构(还缺少存储结构)

数据类型其实包含了数据结构,注意“一个值的集合”,这个值可以是原子类型的值集和结构类型的值集,而结构类型的值集就是数据结构。这里的数据结构指的是它的定义而不是它的实现

附一张网友制作的图

抽象数据类型的定义仅仅取决于它的一组逻辑特性,而其在计算机内部如何表示和实现无论内部的结构怎么变化,只要它的数学特性不变,都不会影响外部的使用。就是说,数据类型和抽象数据类型的相同点是他们都关心逻辑结构。不同点是数据类型既关心逻辑结构又关心物理结构,也就是关注数据结构如何实现,而抽象数据类型只关心抽象特征

数据结构、数据类型、抽象数据类型之间的关系相关推荐

  1. 数据结构 基本概念(数据项--数据元素--数据对象-数据类型-抽象数据类型)

    //数据结构基本概念 #include<iostream> using namespace std;/* 数据 – 程序的操作对象,用于描述客观事物 数据的特点: 可以输入到计算机 可以被 ...

  2. 【Python数据结构】 抽象数据类型 Python类机制和异常

    这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Pyt ...

  3. 数据结构之抽象数据类型

    引言: 在C语言中,按照取值的不同,数据类型可以分为两类: 原子类型: 是不可以再分解的基本类型,包括整型.实型.字符型等. 结构类型:由若干个类型组合而成,是可以再分解的.例如,整型数组是由若干整型 ...

  4. 数据结构之抽象数据类型(C语言实现)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.概念 二.定义格式 三.具体实现 总结 前言 数据类型是一组性质相同的值的集合以及定义于这个值集合上的一组操作的总 ...

  5. 数据结构、数据类型、抽象数据类型之间的区别

    三者的定义(蓝字可忽略): 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合,包括逻辑结构和物理结构.(数据元素是最基本的数据单位,最基本的数据元素是一个二进制位.) 逻辑结构指反映数据元素 ...

  6. 数据结构-抽象数据类型

    抽象数据类型 抽象数据类型是指一个数学模型以及定义在此数学模型上的一组操作,简称ADT,(Abstract Data Type). ADT与具体的物理存储无关,不论ADT内部如何变化,都不影响外部使用 ...

  7. java 抽象数据类型_java抽象数据类型

    抽象数据类型 抽象数据类型是描述数据结构的一种理论工具.在介绍抽象数据类型之前我们先介绍一 下数据类型的基本概念. 数据类型(data type)是一组性质相同的数据元素的集合以及加在这个集合上的一组 ...

  8. c语言写报告抽象数据类型,C语言抽象数据类型ADT

    根据编程的问题匹配合适的数据类型.数据项连接构成了链表,定义了一个结构代表单独的项.设计了一些方法把一系列结构构成一个链表.本质上,我们使用C语言的功能设计了一种符合程序要求的新的数据类型.但是上述的 ...

  9. 【二】、什么是抽象数据类型

    [二].什么是抽象数据类型 前言 在上一篇[什么是数据结构]中我详细介绍了我对数据结构的理解,其实描述数据结构,有一个很好的方法叫抽象数据类型.下面我会详细介绍抽象数据类型. 抽象数据类型 抽象数据类 ...

  10. 复数抽象数据类型C语言,采用C/C++语言如何实现复数抽象数据类型Complex

    记录一下! 采用C/C++语言如何实现复数抽象数据类型Complex #include typedef struct Complex { double e1; // 实部 double e2; // ...

最新文章

  1. np.random.choice()用法
  2. 自学python之路(day2)
  3. 架构成长之路:常见的五种MySQL高可用方案分析
  4. Global.asax或IHttpModule实现屏蔽ip和图片防盗链
  5. java 显示透明背景png图片
  6. 动感灯箱制作流程培训_2000多年的灯箱发展史,你知道多少?
  7. linux 总数 进程_Linux运用一些常用命令,优秀的PHPer都需掌握
  8. 蓝桥学院2019算法题2.17
  9. ElasticSearch--Jdbc导入插件
  10. scss编译输出css并转换成rem
  11. Mysql 5 replication(mysql主从双机策略)
  12. arrays中copyof复制两个数组_Java教程分享之数组知识梳理
  13. 数据库试题及答案 两套
  14. DevOps ACA 阿里云效软件测试和质量保证(八)
  15. 解决DedeCMS搜索结果每页显示10条无法修改方法
  16. 你要偷偷学Python,然后惊艳所有人(类的属性和方法)
  17. 怎么从安卓设备转移数据到苹果_如何将数据从安卓手机转移到苹果手机
  18. 【PTA】斐波那契数列第n项
  19. mysql数据库热备份_mysql数据库热备份
  20. Python验证信用卡号的有效性(算法)(称为Luhn检测或者mod 10 检测)

热门文章

  1. 计算机视觉中常用期刊和会议名称缩写以及半缩写
  2. 43条你必须知道的健康常识能做到几条?
  3. 不容易掉的蓝牙耳机、佩戴不容易掉下来的无线蓝牙耳机
  4. Python模块(Module)详解
  5. /*编程实现邮局寄包裹的邮费计算:用户输入包裹的重量,按如下规定计算邮费。 * 邮局对包裹邮费规定如下:重量(千克)不超过10,收费标准为0.80元/千克; * 不超过20,收费标准为0.75元/
  6. 输入3个abc求出最大数c语言,从健盘输入3个整数输出其中最大数如何编程 – 手机爱问...
  7. python-下载某短视频平台视频(高清无水印)
  8. 空间复杂度(学习总结)
  9. Vue.js 组件复用和扩展之道
  10. 《Python编程从入门到实践》习题答案及重点