程序员

浅谈数据结构以及其特点

2020-08-06  本文已影响0人  Aliven888

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。


资料仅供学习交流使用。
作者:Aliven888

1、简介:

这边文章将会从数据结构的定义、逻辑结构、存储结构、数据运算、相互关系、算法的时间复杂度等几个方面对数据结构进行介绍。

2、什么是数据结构

在了解数据结构之前,我们先了解下什么是数据、数据元素、数据项以及数据对象

3、数据的逻辑结构

数据的逻辑结构主要描述的就是数据元素之间的逻辑关系,它与数据的存储结构没有任何关系,同一逻辑结构的数据可以对应多种存储结构。总的来说,数据的逻辑结构主要分为以下几类。

3.1、线性结构

线性结构是指在该结构中的数据元素之间存在一对一的关系。在线性结构中,开始端元素和结束端元素都是唯一的,并且除了开始端元素和结束端元素外,每一个数据元素都有且仅有一个前驱元素和一个后继元素。


线性结构

3.2、树形结构

树形结构是指在该结构中的数据元素之间存在着一对多的关系。树形结构只有一个开始端元素(也成为根节点),但是却会有多个结束端元素;除了开始端元素外,每个元素都仅有一个前驱元素,但是会有零个或者多个后继元素。


树形结构

3.3、图形结构

图形结构是指该结构中的数据元素之间存在着多对多的关系,每个元素都可以有多个前驱元素,也可以有多个后继元素。


图形结构

4、数据的物理结构

数据的物理结构又称为存储结构,是数据的逻辑结构在计算机中的存储形式(又称映像)。它包含数据元素的表示和关系的表示。
数据元素之间的关系在计算机中有两种不同的表示:顺序存储(映像)和非顺序存储(映像),其中顺序存储(映像)是借助数据元素在存储器中的物理位置来表示数据元素之间的逻辑关系的,而非顺序存储(映像)则是借助指针(指向数据元素的物理存储地址)表示数据元素之间的逻辑关系。
实际上,数据结构中常用的物理存储方式有一下几种。

4.1、顺序存储方法

该方法是把数据元素存放在物理地址连续的存储单元中,逻辑上相邻的两个元素其物理存储地址也是相邻的,数据元素之间的逻辑关系和物理关系是一一对应的。在C/C++中常见的数组就是这种存储方式。

4.2、链式存储方法

该方法是把数据元素存放在任意存储单元中的,逻辑上相邻的两个元素之间在物理位置上并不一定相邻(各个元素间物理空间地址是随机的),而他们之间的关联是有各元素附带的指针字段建立起来的。在C/C++中,常见的链表就是这样方式。

4.3、索引存储方法

该方法通常是在存储元素节点信息的同时,还建立的附加的关系索引表。索引表中的每一项称为索引项,索引项有关键字+地址组成(关键字:唯一标识一个节点, 地址:指向节点的指针)。这种带有索引的存储结构可以大大提高数据的查找速度。

4.4、散列(哈希)存储方法

该方法的基本思想是根据节点的关键字通过哈希函数直接计算出该节点的存储地址,这种存储方式从本质上讲数顺序存储和链式存储的一个扩展。

5、数据的运算

数据运算的实现和执行效率都与存储结构有关。一个数据结构所包含的数据运算的种类和个数,以及每种运算中的参数个数和类型,都应依旧数据结构的实际用途和需求来设定。

上一篇 下一篇

猜你喜欢

热点阅读