【数据结构(青岛大学 王卓)】第1章 绪论 学习笔记(一)0 前言、1.1 数据结构的研究内容

目录

0 前言

1、同学们心中的疑问

2、课程内容

3、数据结构这门课重要吗?

4、这门课好学吗?

5、怎么才能学好这门课程呢?

1.1 数据结构的研究内容

1、计算机解题步骤

2、数值计算

(1)例1

(2)例2

3、非数值计算

(1)例1

(2)例2

(3)文件系统的系统结构图

(4)地理信息处理

4、小结


0 前言

1、同学们心中的疑问

①这门课程是讲什么的?

②这门课重要吗?

③这门课好学吗?

④怎么才能学好这门课?

2、课程内容

凭借一句话获得图灵奖的Pascal语言之父——Nicklaus Wirth,让他获得图灵奖的这句话就是他提出的著名公式:“程序=数据结构+算法”。

这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的“E=MC^2”。——一个公式展示出了程序的本质。

3、数据结构这门课重要吗?

①数据结构是这计算机软件相关专业的专业基础课。

②在教学计划中的地位:核心、承上启下的课程。

③数据结构是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。

④类似于武术中的“练功”科目:“练武不练功,到头一场空”。

⑤考研:必考专业课,四门专业课,共150分,《数据结构和算法》占45分(更有很多学校只考数据结构和算法)。

⑥找工作:面试时最主要考核的内容。

4、这门课好学吗?

有点难。

①概念性强、抽象。

②算法灵活、不易掌握。

③逻辑性强,算法设计很烧脑。

5、怎么才能学好这门课程呢?

勤于思考;多做练习;多上机;善于寻求帮助;不怕困难,不放弃!!!

1.1 数据结构的研究内容

1、计算机解题步骤

通常,用计算机解题一个问题的步骤:

①具体问题抽象为数学模型。

实质:分析问题;提取操作对象;找出操作对象之间的关系;用数学语言描述→数据结构。

②设计算法。

③编程、调试、运行。

2、数值计算

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

(1)例1

例1,求解梁架结构中的应力。

数学模型:KU=M

线性方程组:\begin{pmatrix} a_{11} & \\ & a_{nn} \end{pmatrix}\times \begin{pmatrix} x_{1}\\ ... \\ x_{n} \end{pmatrix}=\begin{pmatrix} b_{1}\\ ... \\ b_{n} \end{pmatrix}

(2)例2

例2,预报人口增长情况。

数学模型:微分方程(\frac{dN(t)}{dt}=rN(t)N(t)|_{t=t_{0}}=N_{0}N(t)=N_{0}e^{rt})。

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

特点:数据元素间的关系简单,计算复杂。

3、非数值计算

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

(1)例1

例1,学生学籍管理系统。

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

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

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

操作对象之间的关系:线性关系。

数据结构:线性数据结构、线性表。

类似的还有图书管理系统、人事管理系统、仓库管理系统、通讯录……

操作对象:若干行数据记录。

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

操作对象之间的关系:线性关系。

数据结构:线性数据结构、线性表。

(2)例2

例2,人机对弈问题。

之所以能对弈:策略已经输入计算机,可以根据当前棋盘格局,来预测棋局发展的趋势,甚至最后结局。

计算机的操作对象:各种棋局状态,即描述棋盘的格局信息。

计算机的算法:走棋,即选择一种策略使棋局状态发生变化(由一种格局派生出另一个格局)。

操作对象之间的关系:非线性关系、树。

(3)文件系统的系统结构图

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

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

(4)地理信息处理

例3,地图导航——求最短路径(最快路径)。

问题:找出图中两点之间的最短路径或最经济路径。

操作对象:各地点及路的信息。

计算机算法:设置信号灯,求出各个可同时通行的路的集合。

对象之间的关系:非线性关系、网状结构。

4、小结

综上所述:

①这些问题的共性是都无法用数学的公式或方程来描述,是一些“非数值计算”的程序设计问题。

②描述非数值计算问题的数学模型不是数学方程,而是诸如表、树和图之类的具有逻辑关系的数据。

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

要想有效地使用计算机,就必须学习数据结构。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章