数据结构

而控制结构组织算法数据结构组织信息。特别是,数据结构指定类型的数据,因此可以执行哪些操作,而不再需要一个程序员来跟踪内存地址。简单的数据结构包括整数、实数,布尔值(真/假),字符或字符串。复合数据结构是由结合形成的一个或多个数据类型。

最重要的是复合数据结构数组,均匀收集的数据,记录,一个异构收集。可能代表一个数组向量数字、字符串、列表或向量的集合(数组、数组或数学矩阵)。记录可能商店雇员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