导航菜单
首页 >  大话数据结构适合考研用吗  > 大话考研数据结构:第3篇 数据结构的基本概念(下)

大话考研数据结构:第3篇 数据结构的基本概念(下)

1 数据结构

        数据结构(data structure)是指相互之间存在一种或多种特定关系的数据元素的集合。现实世界中,任何的数据元素并非孤立存在的,它们之间存在千丝万缕的某种关系,它们的这种称之为“结构”。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。这种“结构”就是指数据元素之间存在的关系,包括以下几个方面:

逻辑结构

物理结构

数据的运算

数据的逻辑结构和储存结构是数据结构的两个密切相关的方面,同一逻辑结构可以对应不同的存储结构。算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构。

2 数据逻辑结构

        数据逻辑结构是指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后间关系,而与它们在计算机中的实际存储位置(也就是物理结构)无关。通常情况下,数据逻辑结构分为两类:

线性结构:数据结构中的元素存在一对一的相互关系。

非线性结构:数据结构中的元素存在一对多或者多对多的相互关系。

其中,对于非线性结构而言

集合表示数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系。这种结构强调元素的整体性,而不关注元素之间的具体关系。

树形结构表示数据结构中的元素存在一对多的相互关系。这种结构能够表示数据元素之间的层次和分支关系。

图形结构表示数据结构中的元素存在多对多的相互关系。这种结构能够表示数据元素之间的任意连接关系,非常适合处理具有复杂关联的数据。

常见的数据结构的数据逻辑结构分类图如下所示:

3 数据存储结构

        存储结构,也称为物理结构,是指数据结构在计算机中的表示(又称映像),它包括了数据元素的机内表示和关系的机内表示。数据存储结构主要关注数据元素在计算机内存中的表示和存储方式。

常用的数据存储结构有以下几类:

顺序存储结构:这种结构把逻辑上相邻的节点存储在物理位置上相邻的存储单元里,节点之间的逻辑关系由存储单元的邻接关系来体现。数组就是顺序存储结构的典型代表,其元素在内存中连续存储,查找效率高,但插入和删除操作效率较低。

链式存储结构:链式存储结构不要求逻辑上相邻的节点在物理位置上也相邻,节点间的逻辑关系是由附加的指针字段表示的。链表是链式存储结构的典型应用,它动态申请或删除内存空间,对于元素的增删操作比较灵活。

索引存储结构:这种结构在存储节点信息的同时,建立附加的索引表,以便快速定位到目标节点。

散列(或哈希)存储结构:它根据节点的关键字通过哈希函数直接计算出一个值,并将这个值作为该节点的存储地址。这种结构的查找速度快,但由于只存储节点的数据,不存储节点之间的逻辑关系,因此不适用于需要频繁进行插入和删除操作的场景。

扩展知识:

        数据元素的机内表示(映像方法): 用二进制位(bit)的位串表示数据元素。通常称这种位串为节点(node)。当数据元素有若干个数据项组成时,位串中与各个数据项对应的子位串称为数据域(data field)。因此,节点是数据元素的机内表示(或机内映像)。

        关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用两种存储结构:顺序存储结构和链式存储结构。顺序映像借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序映像借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系。

4 数据运算

        施加在数据上的运算包括运算的定义和实现。其中,运算的定义是针对逻辑结构的,它指出运算的功能;运算的实现是针对存储结构的,它指出运算的具体操作步骤。

相关推荐: