目前,对数据结构的定义还没有得到真正的统一认同,我就先引用书本里的内容了:数据结构是相互之间存在的一种或多种特定关系的集合。可以说数据结构就是带着“结构”的数据元素的集合,这个“结构”就是数据元素之间的关系。
数据结构包括存储结构和逻辑结构两个层次。
(图片转载于https://blog.csdn.net/balingybj/article/details/48293929)
1、存储结构(也称:物理结构)
数据对象在计算机中的存储表示就称为数据的存储结构。基本的存储结构主要分为顺序存储结构和链式存储结构两种。
(1)、顺序存储结构
地址 | 学号 | 姓名 | 性别 |
0 | 060122201 | 杨阳 | 男 |
25 | 060122202 | 薛林 | 男 |
50 | 060122203 | 王诗萌 | 女 |
地址 | 学号 | 姓名 | 性别 | 指针(存后继结点首地址) |
0 | 060122201 | 杨阳 | 男 | 25 |
(4)、散列存储:散列存储,又称hash存储,是一种力图将数据元素的存储位置与关键码之间建立确定对应关系的查找技术。散列法存储的基本思想是:由结点的关键码值决定结点的存储地址。散列技术除了可以用于查找外,还可以用于存储。
存储结构在这儿就讲一段落了,接下来开始总结一下逻辑结构
1、逻辑结构
数据的逻辑结构是在逻辑关系上描述问题,与数据的存储无关。数据的逻辑结构包括两个要素:数据元素和关系。其中关系指数据元素之间的逻辑关系。根据数据元素之间关系的不同特性,通常有四种基本结构。如下图
集合结构除了集合关系外,任意结点之间无其他关系;
线性结构数据元素间存在一对一的关系;
树结构中数据元素间存在一对多的关系;
图结构(网状结构)中数据元素间存在多对多的关系。
其中集合结构、树结构、图结构都属于非线性结构
(想搞清线性结构和非线性结构的同学请转到https://blog.csdn.net/balingybj/article/details/48293929)
其中线性结构包括线性表、栈和队列、字符串、数组和广义表;非线性结构包括树和二叉树、有向图和无向图。
数据结构的存储结构和逻辑结构的总体概述便先这样吧,后面会再详细讲各个知识点。