二元组(D,R),D是数据元素的有限集,R是D关系上的有限集。

数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

Sartaj Sahni在他的《数据结构、算法与应用》一书中称:“数据结构是数据对象,以及存在于该对象的实例和组成实 例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。”他将数据对象(data object)定义为“一个数据对象是实例或值的集合”。

Clifford A.Shaffer在《数据结构与算法分析》一书中的定义是:“数据结构是ADT(抽象数据类型Abstract Data Type) 的物理实现。”

Robert L.Kruse在《数据结构与程序设计》一书中,将一个数据结构的设计过程分成抽象层、数据结构层和实现层。其中,抽象层是指抽象数据类型层,它讨论数据的逻辑结构及其运算,数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储细节以及运算的实现。

数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。

扩展资料:

一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示。

此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率。

在许多类型的程序的设计中,数据结构的选择是一个基本的设计考虑因素。许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重的依赖于是否选择了最优的数据结构。

许多时候,确定了数据结构后,算法就容易得到了。有些时候事情也会反过来,我们根据特定算法来选择数据结构与之适应。不论哪种情况,选择合适的数据结构都是非常重要的。

选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。

数据结构是指同一数据元素类中各数据元素之间存在的关系。数据结构分别为逻辑结构、存储结构(物理结构)和数据的运算。

数据的逻辑结构是从具体问题抽象出来的数学模型,是描述数据元素及其关系的数学特性的,有时就把逻辑结构简称为数据结构。逻辑结构是在计算机存储中的映像,形式地定义为(K,R)(或(D,S)),其中,K是数据元素的有限集,R是K上的关系的有限集。

参考资料:

java 二元组_java里有类似于二元组之类的数据结构么?相关推荐

  1. java 元祖_JAVA里的元祖类

    什么是元祖类 java中的方法只能返回单个对象,如果需要返回多个怎么办?通常我们会创建一个额外的对象,或者把返回内容放入集合中返回,另外,我们也有其他的选择:结合泛型,我们可以把一组对象直接打包存储于 ...

  2. java高级规范_Java高级规范之二

    二十一.提交java代码前应该检查是否有没用的语句,如:System.out.println(); jsp页面上面是否有alert调试信息 不规范示例:暂无 规范实例:暂无 解析:因为如果保留了有可能 ...

  3. java 排序 内存_Java内存模型(二)——重排序

    一.重排序 重排序是指为了提高程序的执行效率,编译器和处理器常常会对语句的执行顺序或者指令的执行顺序进行重排. 编译器优化的重排序:编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序. ...

  4. java 字符串赋值_Java 学习笔记(二)变量

    标识符  标识符就是名字.类名,变量名,方法名,参数名等  标识符的命名规则  以字母.下划线或美元符号$开头,不能以数字开头 其后可以是字母.数组或美元符号$ 区分大小写 避免使用关键字  ...

  5. java编程二十_Java语言程序设计(二十)编程练习

    1.编写程序,读取一个在0到1000之间的整数,并将该整数的各位数字相加,例如,整数是999,结果输出27. 程序清单如下: package sumsum; import java.util.Scan ...

  6. java冰法_Java基础学习笔记二 Java基础语法

    注释 注释用来解释和说明程序的文字,注释是不会被执行的. 单行注释 //这是一条单行注释 public int i; 多行注释 /*这是 * 一段注释, * 它跨越了多个行*/ public void ...

  7. java mapreduce教程_Java搭建MapReduce完成二次排序步骤

    1.构建新的作业 Configuration conf=getConf(); Job job=Job.getInstance(conf); job.setJarByClass(SortYearAndT ...

  8. java file 对象_Java里File对象的问题。

    Java里File对象的问题. 关注:282  答案:2  mip版 解决时间 2021-02-02 07:14 提问者鉨瞞着所囿亾,爱着誰 2021-02-01 08:59 import java. ...

  9. redis的java客户端名称_java里常用的redis客户端简介

    zepto返回顶部动画 点击返回顶部 function goTop(acceleration, time) { acceleration = acceleration || 0.1; time = t ...

最新文章

  1. C# Attribute
  2. python怎么安装第三方库-vs2017怎么安装python第三方包
  3. Catalina.stop: Connect refused解决过程
  4. 共模电感适用的频率_电感选型详解及设计规范
  5. 把AspDotNetCoreMvc程序运行在Docker上-part2:修改容器以及发布镜像
  6. ExcelAndJSON的设计决策
  7. web开发常用js功能性小技巧(转)
  8. R学习之——R用于文本挖掘(tm包)
  9. linux 编辑启动菜单,grub2的配置,linux启动菜单修改
  10. Mysql学习总结(79)——MySQL常用函数总结
  11. python将object转换为float_如何在python中将datatype:object转换为float64?
  12. python K折交叉验证
  13. 车牌识别对于智慧城市的重要性
  14. 大学生家乡网页设计作业模板下载 南京城市网页设计作业成品 静态HTML旅游景点网页制作下载_网页设计代码
  15. CentOS 7 开机自启汇总
  16. Python项目--批量下载小姐姐壁纸
  17. html箭头相关符号
  18. S7-200SMART案例分析——运动控制编程(三)
  19. 【详解】机器学习库-Matplotlib+Numpy+Pandas
  20. 行人检测资源(下)代码数据

热门文章

  1. html如何实现日期下拉菜单,实现一个日期下拉菜单
  2. 蜗牛爬井题目c语言,一年级奥数,蜗牛爬井问题
  3. 【个人吐槽】:你为什么写
  4. 不重启JVM动态添加日志(阿里Arthas)
  5. CentOS里route命令详解
  6. opencv mat裁剪
  7. C++中的运算符和运算符优先级总结
  8. 投资与财报的学习笔记
  9. com.google.common.base.Stopwatch 应用
  10. 给自己看的(摘自他人)