数据结构
而控制结构组织算法数据结构组织信息。特别是,数据结构指定类型的数据,因此可以执行哪些操作,而不再需要一个程序员来跟踪内存地址。简单的数据结构包括整数、实数,布尔值(真/假),字符或字符串。复合数据结构是由结合形成的一个或多个数据类型。
最重要的是复合数据结构数组,均匀收集的数据,记录,一个异构收集。可能代表一个数组向量数字、字符串、列表或向量的集合(数组、数组或数学矩阵)。记录可能商店雇员information-name、标题和薪水。数组记录,如员工表,是元素的集合,每一个都是异类。相反,一个记录可能包含vector-i.e。是一个数组。
记录组件,或字段,选择按名称;例如,E。薪水可能代表的工资字段记录e .数组元素被选中的位置或索引;一个[10]是数组元素位置10一个。一个FOR循环(明确的迭代)可以通过数组索引限制(姓,在下面的例子中)为了和它的元素:
-
为我←姓,
-
和←和+一个(我]
数组和记录固定大小。结构,可以建立与生长动态根据需要配置,它提供了新的存储。这些数据结构组件,每个包含数据和引用(在进一步组件机方面,他们的地址)。这样的自我参照结构递归定义。一个二叉查找树(二叉树)例如,要么是空的或包含一个根组件数据和左、右二叉查找树”的孩子。“这样的二叉查找树实现表的信息效率。操作子程序对他们自然递归;以下程序打印出一个二叉查找树的所有元素(每个子树的根):
-
过程遍历(根:二叉查找树)
-
如果不是(空(根)
-
遍历(ROOT.LEFT)
-
打印ROOT.DATA
-
遍历(ROOT.RIGHT)
-
ENDIF
抽象数据类型(adt)对大规模的编程很重要。他们包数据结构和操作,隐藏内部细节。例如,ADT表提供了插入和查找操作给用户,同时保持底层结构,是否一个数组,列表,或二叉树,看不见。在面向对象的语言adt,类和对象的实例。以下面向对象的伪代码示例假定有一个ADT二叉查找树和一个“父类”可比,描述数据的比较操作(如整数“<”)。表,它定义了一个新的ADT隐藏其数据表示和提供业务适当的表。这个类是polymorphic-defined的元素类型参数类似的类。任何它必须指定类型的实例,这类员工数据(类似的声明意味着PERS_REC必须提供一个比较操作记录)。实现细节都省略了。
-
类表<可比T >
-
私人数据:二叉查找树的< T >
-
公共插入(项目:T)
-
公共查询(项目:T)返回布尔值
-
结束
-
类PERS_REC:可比
-
私人的名字:字符串
-
私人的位置:{}员工,主管,经理
-
私人的薪水:真正的
-
公共(R: PERS_REC)返回布尔值进行比较
-
结束
-
员工:表< PERS_REC >
表只公开自己的操作;因此,如果使用一个修改数组或列表而不是二叉查找树,使用它不能检测变化的程序。这个信息隐藏是必不可少的在大型程序管理复杂性。它分裂成小零件、部件之间的“合同”;这里的表类合同提供查找和插入操作,及其用户只使用合同业务宣传。
大卫Hemmendinger