数据结构基本概念 - Go语言中文社区

数据结构基本概念


基本概念

数据(Data) :是客观事物的符号表示。在计算机科学中指的是所有能输入到计算机中并被计算机程序处理的符号的总称。

数据元素(Data Element) :是数据的基本单位,在程序中通常作为一个整体来进行考虑和处理。
  一个数据元素可由若干个数据项(Data Item)组成。数据项是数据的不可分割的最小单位。数据项是对客观事物某一方面特性的数据描述。

数据对象(Data Object):是性质相同的数据元 素的集合,是数据的一个子集。如字符集合C={‘A’,’B’,’C,…} 。

数据结构(Data Structure):是指相互之间具有(存在)一定联系(关系)的数据元素的集合。元素之间的相互联系(关系)称为逻辑结构。数据元素之间的逻辑结构有四种基本类型,如图1-3所示。
集合:结构中的数据元素除了“同属于一个集合”外,没有其它关系。
线性结构:结构中的数据元素之间存在一对一的关系。
树型结构:结构中的数据元素之间存在一对多的关系。
图状结构或网状结构:结构中的数据元素之间存在多对多的关系。

数据结构的存储方式

数据结构在计算机内存中的存储包括数据元素的存储和元素之间的关系的表示。
  元素之间的关系在计算机中有两种不同的表示方法:顺序表示和非顺序表示。由此得出两种不同的存储结构:顺序存储结构和链式存储结构。

  • 顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑结构(关系)。
  • 链式存储结构:在每一个数据元素中增加一个存放另一个元素地址的指针(pointer ),用该指针来表示数据元素之间的逻辑结构(关系)。

数据的逻辑结构和物理结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构。

数据结构的三个组成部分:

逻辑结构: 数据元素之间逻辑关系的描述
D_S=(D,S)

存储结构: 数据元素在计算机中的存储及其逻辑关系的表现称为数据的存储结构或物理结构。

数据操作: 对数据要进行的运算。

线性表,树,图的逻辑结构及其采用的存储结构如图1-1所示

图1-1.png
图1-2.png

数据类型

__ 数据类型(Data Type)__:指的是一个值的集合和定义在该值集上的一组操作的总称。
  数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素之间的相互关系。

抽象数据类型

抽象数据类型(Abstract Data Type ,简称ADT) :是指一个数学模型以及定义在该模型上的一组操作。
  ADT的定义仅是一组逻辑特性描述, 与其在计算机内的表示和实现无关。因此,不论ADT的内部结构如何变化,只要其数学特性不变,都不影响其外部使用。
  ADT的形式化定义是三元组:ADT=(D,S,P)
其中:D是数据对象,S是D上的关系集,P是对D的基本操作集。

ADT的一般定义形式是
ADT <抽象数据类型名>{
数据对象: <数据对象的定义>
数据关系: <数据关系的定义>
基本操作: <基本操作的定义>
} ADT <抽象数据类型名>
– 其中数据对象和数据关系的定义用伪码描述。
– 基本操作的定义是:
<基本操作名>(<参数表>)
初始条件: <初始条件描述>
操作结果: <操作结果描述>

  • 初始条件:描述操作执行之前数据结构和参数应满足的条件;若不满足,则操作失败,返回相应的出错信息。
  • 操作结果:描述操作正常完成之后,数据结构的变化状况和 应返回的结果。

基本概念就这么多,如果想深入了解,建议阅读相关书籍。

  • 数据结构(c语言版)严蔚敏编著
版权声明:本文来源简书,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.jianshu.com/p/c3e6d2ceff7b
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-01-08 21:30:50
  • 阅读 ( 1124 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢