数据结构与算法——数据结构的研究内容(2)

50 阅读2分钟
graph TD
通常用计算机解题一个问题的步骤 --> 1(具体问题抽象为数据模型)
通常用计算机解题一个问题的步骤 --> 5(设计算法)
通常用计算机解题一个问题的步骤 --> 6(编程-调式-运行)

1(具体问题抽象为数据模型) --> 4(分析问题)
1(具体问题抽象为数据模型) --> 3(提取操作对象)
1(具体问题抽象为数据模型) --> 2(找出操作对象之间的关系)
1(具体问题抽象为数据模型) -->  7(用数学语言描述)

最初,计算机用于计算复杂的数学公式、数学方程(高斯消元法、有限元法、差分法...)

graph TD
a(数学方程) --> b(数据的操作和管理)

然后,被应用于数据的操作和管理

学生学籍管理系统

学号姓名性别籍贯专业
001李安安徽计算机应用
002李光江苏计算机应用
003余华安徽计算机应用
004三毛安徽计算机应用

操作对象\color{red}{对象}:学生的信息(学号、姓名、性别、籍贯、专业)
操作算法\color{red}{算法}:查询、插入、修改、删除等
操作对象之间的关系\color{red}{关系}:线性关系 数据结构:\color{red}{数据结构}:线性数据结构、线性表。

接着是人机对弈

当前格局:现在该黑棋走,有哪些方案呢?

派生格局1

派生格局2

派生格局3

派生格局4

派生格局5

而上面的5个派生格局执行后,便剩下4个空格,则又会相应地产生4个派生格局,之后是3个,2个,1个。

graph TD
树根 --> 分支1
树根 --> 分支2

分支1 --> 分支11
分支1 --> 分支12
分支1 --> 分支13

分支2 --> 分支21
分支2 --> 分支22
分支2 --> 分支23

类似于这样,像是一个倒着的树一样

操作对象之间的关系\color{red}{关系}:非线性关系 、 树。

下面这个也是树

graph TD
文件夹 --> 文件夹1
文件夹 --> 文件1

文件夹1 --> 文件11
文件夹1 --> 文件夹12

文件夹12 --> 文件夹123
文件夹12 --> 文件123

地图导航——求最短路径(最快路径)

image.png

起点终点有多条路径,究竟哪条是最快的?

graph TD
A --- B
A --- C

C --- G
B --- D
C --- D

D --- E
D --- F
E --- F

图结构

操作对象\color{red}{对象}:每个地点和路的信息
操作算法\color{red}{算法}:设置信号灯、求出各个可同时通行的路的集合
操作对象之间的关系\color{red}{关系}:非线性关系 、 网状结构。

总结

以上的这些都不是计算问题(数学方程),而是如表、树、图之类的具有逻辑关系的数据。\color{red}{以上的这些都不是计算问题(数学方程),而是如表、树、图之类的具有逻辑关系的数据}。

数据结构 是一门研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作的学科。\color{red}{是一门研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系和操作的学科}。