Page 101 - 高中 信息技术 选择性必修1 数据与数据结构
P. 101
4.1 认识抽象数据类型
复数减法;
复数乘法;
复数除法;
}ADT 复数
这里关于复数的数据和基本操作,是基于数学中复数的概念和运算进行抽象的,其抽
象的前提是可以通过计算机实现。显然,复数的抽象数据类型定义用C++语言实现起来并
不困难。
4 . 1 . 2 抽象数据类型的应用
广东教育出版社
利用抽象数据类型定义复数,并通过编程实现,就可以使用计算机处理复数了。除了
数学运算外,在解决现实问题和实际编写计算机应用软件时,因为要解决的问题更复杂,
所以更需要大量应用抽象数据类型来描述问题和设计解决方案。
如项目范例中的俄罗斯方块游戏,方块的颜色、形状都有多种,每一个方块都有左
旋、右旋、左移、右移、下落等多种操作,变化较多。游戏程序实现的关键是如何操控这
些方块,可以定义一种抽象数据类型“方块”,其中包含方块的形状、颜色、中心点等,
以及对它的左旋、右旋、左移、右移、下落等多种操作。类似的,我们还可以将俄罗斯方
块游戏的区域也定义为一种抽象数据类型,从而完成游戏的设计。
下面我们再举两个例子。
(1)象棋游戏里(如图4-3所示),每一
个棋子上面的文字都不一样,有的是“马”、有
的是“兵”等,对阵双方的棋子颜色一般为黑色
和红色,每个棋子必须响应鼠标或键盘的控制动
作,实现棋子的拿起、移动、放下等操作。这里
可以将棋子定义为一种抽象数据类型,其数据模
型包括棋子的颜色、棋子的文字、棋子在棋盘上
的坐标等,基本操作包括拿起、移动、放下等。
(2)电子地图的测距、导航等问题(如图
4-4所示)。测距只需要计算地图上两点的距离
即可,但导航问题比较复杂,需要从地图上寻找
两个确定地点的最佳路径,这需要建立复杂的数
据模型,如地点的经纬度、周边的路况等,并寻
图4-3 中国象棋
找合适算法。而要利用计算机处理该数据模型,
就需要把其中涉及的数据模型合理存储并对这个
数据模型进行操作。
93 93
21X2204.indd 93 2019/9/26 13:53:25