第1章 1.1 什么是数据结构

1.1 什么是数据结构

一般来说,用计算机解决一个具体问题,大致需要经过下列几个步骤:首先,要从具体问题抽象出一个适当的数学模型,然后设计一个解决这个数学模型的算法,最后编出程序。寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述。

例如:可以用数学语言来描述的,求梁架结构中应力的数学模型为线性方程组;预报人口增长情况的数学模型为微分方程。

然而,更多的非数值计算问题的例子无法用数学方程加以描述,如下例子就是。

1. 图书馆数目检索系统

当你想找某个方面的书时候,需要去图书馆查找图书目录卡片,在图书馆有各种名目的卡片:有按书名编排的,有按作者编排的,还有按分类编排的等等。若利用计算机实现自动检索,那么计算机要处理的对象便是这些目录卡片上的信息。

在这类文档管理的数学模型中,计算机处理的对象之间通常存在着的是一种最简单的线性关系,这类数学模型可称为线性的数据结构。

2. 计算机和人对弈问题

在对弈问题中,计算机操作的对象是对弈过程中可能出现的棋盘状态——称为格局。如图为一个 井字棋的格局,格局之间的关系是有比赛规则决定的。


通常这个关系不是线性的,因为从一个棋盘格局可以派生出几个格局,从上图的左边的第一个格局可以派生出右边的5个格局,而每一个新的格局又可以派生出4个可能出现的格局。

因此,若要将对弈开始到结束所有可能出现的格局都画在一张图上,则可得到一颗倒长的树。树根是对弈开始之前的棋盘格局,而所有的“叶子”是可能出现的格局,对弈的过程就是从树根沿着树枝到某个叶子的过程。“树”可以是某些非数值计算问题的数学模型,它也是一种数据结构。

3. 多岔路口交通灯的管理问题

通常这类交通、道路问题的数学模型是一种称为“图”的数据结构。




综上3个例子可见,模式这类非数值计算问题的数学模型不再是数学方程,而是诸如表、树和图等之类的数据结构。因此,数据结构是一门研究非数值计算程序设计问题计算机操作对象以及它们之间关系和操作等的学科。

数据结构的研究不仅涉及到硬件(特别是编码理论、存储装置和存取方法等)研究范围,而且和计算机软件有密切联系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值