2022-08-25 14:56:27 +08:00
|
|
|
|
---
|
|
|
|
|
title: 数据结构
|
|
|
|
|
description: 数据结构的定义
|
|
|
|
|
keywords:
|
2024-04-26 21:42:22 +08:00
|
|
|
|
- 数据结构
|
|
|
|
|
- 抽象数据类型
|
2022-08-25 14:56:27 +08:00
|
|
|
|
tags:
|
2024-10-14 16:48:38 +08:00
|
|
|
|
- FormalSciences/ComputerScience
|
2022-08-25 14:56:27 +08:00
|
|
|
|
author: 7Wate
|
|
|
|
|
date: 2022-08-25
|
|
|
|
|
---
|
2024-04-26 22:10:54 +08:00
|
|
|
|
|
2022-08-25 14:56:27 +08:00
|
|
|
|
## 概述
|
2024-04-26 22:10:54 +08:00
|
|
|
|
|
2022-08-25 14:56:27 +08:00
|
|
|
|
数据结构是相互之间存在**一种或多种特定关系**的数据元素的集合。
|
2024-04-26 22:10:54 +08:00
|
|
|
|
|
2022-08-25 14:56:27 +08:00
|
|
|
|
## 数据
|
2024-04-26 22:10:54 +08:00
|
|
|
|
|
2022-08-25 14:56:27 +08:00
|
|
|
|
数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
|
|
|
|
|
|
|
|
|
|
**数据项 > 数据元素 >> 数据对象:数据项构成了数据元素,数据元素组合成了数据对象。**
|
|
|
|
|
|
|
|
|
|
## 结构
|
2024-04-26 22:10:54 +08:00
|
|
|
|
|
2022-08-25 14:56:27 +08:00
|
|
|
|
结构是不同数据元素之间不是独立的,而是存在特定的关系。
|
2024-04-26 22:10:54 +08:00
|
|
|
|
|
2022-08-25 14:56:27 +08:00
|
|
|
|
### 逻辑结构
|
2024-04-26 22:10:54 +08:00
|
|
|
|
|
2022-08-25 14:56:27 +08:00
|
|
|
|
逻辑结构是指**数据对象 中 数据元素**之间的相互关系。
|
|
|
|
|
|
|
|
|
|
- 集合:集合结构中的数据元素除了属于一个集合外,它们之间**没有其他关系**。
|
|
|
|
|
- 线性:线性结构中的数据元素之间是**一对一的关系**。
|
|
|
|
|
- 树形:树形结构中的数据元素之间存在一种**多对多的层次关系**。
|
|
|
|
|
- 图形:图形结构的数据元素是**多对多的关系**。
|
|
|
|
|
|
|
|
|
|
### 物理结构
|
|
|
|
|
|
|
|
|
|
物理结构是指数据的逻辑结构在计算机中的存储形式。
|
|
|
|
|
|
|
|
|
|
#### 顺序存储
|
|
|
|
|
|
|
|
|
|
顺序存储结构是把数据元素放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
|
|
|
|
|
|
|
|
|
|
#### 链式存储
|
|
|
|
|
|
|
|
|
|
链式存储结构是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。
|
|
|
|
|
|
|
|
|
|
## 数据类型
|
|
|
|
|
|
|
|
|
|
数据类型是指一组**性质相同的值的集合**以及定义在此**集合上的一些操作**的总称。
|
|
|
|
|
|
|
|
|
|
### 定义
|
|
|
|
|
|
|
|
|
|
- 相同数据对象集合(例如整数 > 整数型,字符 > 字符型)。
|
|
|
|
|
- 集合相关联的操作(整数可以加减,字符可以拼接)。
|
|
|
|
|
|
|
|
|
|
### 分类
|
|
|
|
|
|
|
|
|
|
- 原子类型(字节型、数值型、字符串型)。
|
|
|
|
|
- 结构类型(原子类型的组合)。
|
|
|
|
|
|
|
|
|
|
## 抽象数据类型
|
|
|
|
|
|
|
|
|
|
抽象数据类型(Abstract Data Type,ADT)是指一个数学模型及其定义在该模型上的一组操作。
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
ADT 抽象数据类型名
|
|
|
|
|
Data
|
|
|
|
|
数据元素之间逻辑关系的定义
|
|
|
|
|
Operation
|
|
|
|
|
操作1
|
|
|
|
|
初始条件
|
|
|
|
|
操作结果描述
|
|
|
|
|
操作2
|
|
|
|
|
…………
|
|
|
|
|
操作n
|
|
|
|
|
…………
|
|
|
|
|
endADT
|
|
|
|
|
```
|