1
0
wiki/FormalSciences/ComputerScience/StructuresAlgorithms/数据结构.md
2024-10-14 16:48:38 +08:00

80 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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