数据结构: 一、数据结构概述

时间:2020-11-29 10:38:02

    目前,对数据结构的定义还没有得到真正的统一认同,我就先引用书本里的内容了:数据结构是相互之间存在的一种或多种特定关系的集合。可以说数据结构就是带着“结构”的数据元素的集合,这个“结构”就是数据元素之间的关系。

    数据结构包括存储结构和逻辑结构两个层次。

数据结构: 一、数据结构概述

(图片转载于https://blog.csdn.net/balingybj/article/details/48293929)

    1、存储结构(也称:物理结构)

    数据对象在计算机中的存储表示就称为数据的存储结构。基本的存储结构主要分为顺序存储结构和链式存储结构两种。

    (1)、顺序存储结构

    顺序存储结构是借元素在存储器中的相对位置来表示数据元素之间的逻辑关系;在顺序存储结构中,逻辑相邻的两个元素之间在地址存储中也是相邻的。如下表,每个结点(学生记录)占用25个存储单元。数据便从0号单元从低地址向高地址方向存储,要求所有的元素一次存放在一片连续的存储空间中。通常借用程序设计语言的数组类型来描述。
顺序存储结构
地址 学号 姓名 性别
0 060122201 杨阳
25 060122202 薛林
50 060122203 王诗萌
    (2)、链式存储结构
    链式存储结构不需要占用一整块存储空间,但需要给每个结点附加指针字段存放后继元素的存储地址用以表示结点之间的关系,所以常借助于程序设计语言中的指针类型来描述。
链式存储结构
地址 学号 姓名 性别 指针(存后继结点首地址)
0 060122201 杨阳 25
    如此,每个相邻结点的存储地址便不必相邻,不过每个结点都需要多声明一个指针项。

    除了这两种主要的存储结构,还有索引存储和散列存储,不过课堂和书本上都没细讲,我也只在网上查了一点资料:
    (3)、索引存储:除了建立存储结点信息外,还建立附加的索引表来标识结点的地址。索引表由若干个索引项组成

    (4)、散列存储:散列存储,又称hash存储,是一种力图将数据元素的存储位置与关键码之间建立确定对应关系的查找技术。散列法存储的基本思想是:由结点的关键码值决定结点的存储地址。散列技术除了可以用于查找外,还可以用于存储。

存储结构在这儿就讲一段落了,接下来开始总结一下逻辑结构

    1、逻辑结构

    数据的逻辑结构是在逻辑关系上描述问题,与数据的存储无关。数据的逻辑结构包括两个要素:数据元素和关系。其中关系指数据元素之间的逻辑关系。根据数据元素之间关系的不同特性,通常有四种基本结构。如下图

数据结构: 一、数据结构概述

    集合结构除了集合关系外,任意结点之间无其他关系;

    线性结构数据元素间存在一对一的关系;

    树结构中数据元素间存在一对多的关系;

    图结构(网状结构)中数据元素间存在多对多的关系。

其中集合结构、树结构、图结构都属于非线性结构

(想搞清线性结构和非线性结构的同学请转到https://blog.csdn.net/balingybj/article/details/48293929)

其中线性结构包括线性表、栈和队列、字符串、数组和广义表;非线性结构包括树和二叉树、有向图和无向图。

数据结构: 一、数据结构概述

    数据结构的存储结构和逻辑结构的总体概述便先这样吧,后面会再详细讲各个知识点。