一、基本概念

12/9/2023 data-structure_c

# 什么是数据结构

# 数据结构的定义

  • 数据(data):是描述客观事物的数和字符的集合。

  • 数据元素(dataelement):数据的基本单位(例如,200902班中的每个学生记录都是一个数据元素)。一个数据元素可以由若干个数据项组成。

  • 数据项(data item):是数据最小单位,也称为字段或域。例如,200902班中的每个数据元素(即学生记录)是由学号、姓名、性别和班号等数据项组成的。

  • 数据对象(data object):是指性质相同的数据元素的集合,它是数据的一个子集。

  • 数据结构(data strueture):是指所有数据元素以及数据元素之间的关系,可以看作是相互之间存在着某种特定关系的数据元素的集合。因此,我们可以把数据结构看成是带结构的数据元素的集合。包含三个方面:逻辑结构、存储结构和对数据的运算。

# 逻辑结构

逻辑结构: 两个要素:数据元素和关系

四种基本逻辑结构:集合结构,线性结构,树结构,图结构

  • 集合结构:集合通常是由一组无序的, 不能重复的元素构成。

  • 线性结构:线性结构(linear structure)是指该结构中的数据元素之间存在一对一的关系。其特点是开始元素和终端元素都是唯一的,除了开始元素和终端元素以外,其余元素都有且仅有一个前驱元素,有且仅有一个后继元素。代表线性表。

  • 树形结构:树形结构是指该结构中的数据元素之间存在一对多的关系。其特点是除了开始元素以外,每个元素有且仅有一个前驱元素,除了终端元素以外,每个元素有一个或多个后继元素。二叉树就是一种典型的树形结构。

  • 图形结构:图形结构是指该结构中的数据元素之间存在多对多的关系。其特点是每个元素的前驱元素和后继元素的个数可以是任意的。树形结构和图形结构统称为非线性结构。

非线性结构:树,二叉树,有向图,无向图 线性结构:线性表(线性表,栈与队列,字符串,数组,广义表)

具体可以参考图:

# 存储结构

数据逻辑结构在计算存储器中的存储表示称为数据的存储结构

4种常用的存储方法:顺序存储结构、链式存储方法、索引存储结构、哈希(或散列)存储方法

  • 顺序存储结构:将数据元素存放在地址连续的存储单元里,逻辑上相邻的元素其存储的物理位置也相邻。可实现对元素的随机存储,对元素的插入和删除操作要移动一系列元素,比如数组。

  • 链式存储方法:数据放在任意的存储单元里,逻辑上相邻的元素存储的物理位置不一定相邻。便于元素的插入和删除,不用移动一系列元素;但是不能随机存储(按照下标);存储空间利用率低,有一部分空间要来存放下一个节点的地址。

  • 索引存储结构:索引存储结构(indexedstoragestructure)是指在存储数据元素信息的同时还建立附加的索引表。存储所有数据元素信息的表称为主数据表,其中每个数据元素有一个关键字和对应的存储地址。索引存储结构的优点是查找效率高。其缺点是需要建立索引表,从而增加了空间开销。

  • 哈希(或散列)存储方法:哈希(或散列)存储结构(hashedstoragestructure)的基本思想是根据元素的关键字通过哈希(或散列)函数直接计算出一个值,并将这个值作为该元素的存储地址。

【例1】以下属于逻辑结构的时___。

A. 顺序表 B. 哈希表 C. 有序表 D. 单链表

【例2】以下不属于存储结构是___。

A. 栈 B. 线索树 C. 哈希表 D. 单链表

栈是一种逻辑结构,通常有顺序栈和链栈两种存储结构。

【例3】在决定选取何种类型的存储结构时,一般不多考虑___。

A. 各节点的值如何 B. 节点的个数多少

C. 对数据有哪些运算 D. 所用编程语言实现这种结构是否方便

Last Updated: 12/11/2023, 4:09:22 PM