数据结构与算法基础——第01周-数据结构研究(1.1)

一 概述

  • 计算机解决问题的过程
  • 计算机解决问题的数值计算与非数值计算(线性关系、树、图)
  • 数据结构研究小结

二 计算机解决问题的过程

三 计算机解决问题的数值计算与非数值计算(线性关系、树、图)

3.1 数值计算

早期,计算机主要用于数值计算

3.1.1 求解梁架结构中的应力

数学模型:KU=M线性方程组

3.1.2 预报人口增长情况

3.1.3 解题过程

  • 首先,分析问题、提取操作对象
  • 然后,找出操作对象之间的关系,用数学语言加以描述,建立相应数学方程
  • 最后,求解数学方程:高斯消元法、有限元法、差分法...

3.1.4 特点

数据元素间的关系简单,计算复杂

3.2 非数值计算

随着计算机应用领域的扩展,计算机被越来越多的用于非数值计算

3.2.1 应用场景

学生基本信息表
学号 姓名 性别 籍贯 专业
60214201 杨阳 安徽 计算机科学与技术
60214202 薛林 福建 计算机科学与技术
60214215 王诗萌 吉林 计算机科学与技术
60214216 冯子晗 山东 计算机科学与技术

操作对象:每位学生的信息(学号、姓名、性别、籍贯、专业...)

操作算法:查询、插入、修改、删除等

操作对象之间的关系:线性关系、数据结构:线性数据结构、线性表

类似的还有图书管理系统、人事管理系统、仓库管理系统、通讯录
图书管理系统:
ISBM 正题名 责任者
7-5387-1629-7 战争狂人-希特勒传 (西德)彼得.波罗夫斯基
7-5387-1629-7 工商神通-布莱尔传 梁力著
7-5387-1629-7 解题总统-叶利钦传 白成国著
人事管理系统
编号 姓名 性别 部门 职位 职称 聘用方式 电话 入职日期 学历 专业 薪资
No1 张三 研发部 员工 无职称 正式 13xxxx 2021-12-01 本科 计算机 ¥1000
No2 李四 研发部 员工 无职称 正式 13xxxx 2021-12-01 本科 计算机 ¥1000
仓库管理系统
货位 商品编号 商品名称 数量 当前库存 摘要 关联单号 出货状态
m01 0000131 图书-数据机构 500 500 数据结构 100010 已出货

操作对象:若干行数据记录
操作算法:查询、插入、修改、删除等
操作对象之间的关系:线性关系
数据结构:线性数据结构、线性表

3.2.2 树

人机对弈问题
演示

说明
  • 之所以能对弈:策略已经输入计算机,可以根据当前棋盘格局,来预测棋局发展的趋势,甚至最后结局
  • 计算机的操作对象:各种棋局状态,即描述棋盘的格局信息
  • 计算机的算法:走棋,即选择一种策略使棋局状态发生变化(由一个格局派生出另一种格局)
  • 操作对象之间的关系:非线性关系、树
文件系统的系统结构图

磁盘根目录下有很多子目录及文件,每个子目录里又可以包含多个子目录及文件,但每个子目录只有一个父目录,依次类推;

说明:

  • 本问题是一种典型的树型结构问题,数据与数据成一对多的关系,是一种典型的非线性关系——树形结构

3.2.3 图

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


说明:

  • 问题:找到图中两点之间的最短路径或最经济路径
  • 操作对象:个地点及路的信息
  • 计算机算法:设置信号灯,求出各个可同时同行的路的集合
  • 对象之间的关系:非线性关系、网状结构

四 数据结构总结

  • 这些问题的共性是无法用数学的公式或方程来描述,是一些非数值计算的程序设计问题
  • 描述非数值计算问题的数学模型不是数学方程,而是诸如表、树之类的具有逻辑关系的数据
  • 数据结构是一门研究非数值计算的程序设计中计算机的操作对象以及它们之间的关系操作的学科