基本ADT

这里将讨论一些基本抽象数据类型。所谓基本,只是相对而言,这些数据类型是最基本,最简单的,并且是实现其他抽象数据类型的基础。

在下面的讨论中,首先我们将给出各种ADT的数学性质,然后在其数学模型上定义一组运算,最后将讨论如何利用基本的数据类型(数组、指针、记录等)来具体实现各种ADT。

为了体现算法表达的抽象机制,在这里我将尝试用面向对象的方法来实现所有的抽象数据类型。由于基本的数据类型要牵涉到各种编程语言的具体语法特性,考虑到大家的具体需求,我将分别用Object Pascal和 C++ 语言来实现每种ADT。Object Pascal是Borland对传统Pascal语言的扩展,主要是在其中加入了面向对象的机制,语法上和传统Pascal差不多,就好像C++是C的扩展一样。这里所采用的Object Pascal将以Borland Delphi的Pascal语法为标准,采用的C++将以Microsoft Visual C++的C++语法为标准,所有的Object Pascal代码都在Delphi 5.0上调试通过,所有的C++代码都在VC6.0上调试通过。

请注意,这里假设您已经很熟悉Object Pascal或C++编程,以及面向对象的编程思想,所以我的精力将主要放在各种ADT的具体实现上,而不是各种语言的语法讲解上。

下面您将了解到以下常见的基本抽象数据类型的ADT操作以及这些操作用不同数据描述方法的具体实现:

BTW:由于我也是刚刚学习面向对象的编程,所以代码中有错误在所难免,希望大家批评指正。