抽象数据类型

抽象数据类型

作为抽象数据类型的有理数

编辑

有理数(可以 a/b 格式表示的数,且 a 和 b 都是整数)本来是不能在电脑中表示出来。不过可以合理的抽象数据类型来定义,如下。

构造:使用两个整数 a 与 b 建立实体,其中 a 为分子,b 为分母。

运算:加法、减法、乘法、除法、乘幕、比较、约分,转成实数(浮点数)。

要完成整个规格,就要根据数据来定义所有的运算。例如,当两个有理数 a/b 和 c/d 相乘时,相乘的结果就要定义为 ( a c ) / ( b d )。还有输入、输出、先决条件、后置条件,以及对抽象数据类型的各种假定。

堆栈

编辑

接口

编辑

堆栈的抽象数据类型接口,以 C 语法编写:

long stack_create(); /* 建立新的堆疊實體 */

void stack_push(long stack, void *item); /* 將一個項目堆入堆疊 */

void *stack_pop(long stack); /* 從堆疊頂部取得項目 */

void stack_delete(long stack); /* 刪除堆疊 */

用法

编辑

抽象数据类型可以如下方式使用:

long stack;

struct foo *f;

stack = stack_create(); /* 建立堆疊 */

stack_push(stack, f); /* 將 foo 結構加入堆疊 */

f = stack_pop(stack); /* 從堆疊取得頂部的結構 */

各种实现

编辑

上述堆栈的抽象数据类型,一开始可以使用数组来实现,然后改用链表,而不会伤到任何用户的代码。有多少方法可以实现抽象数据类型,取决于编程语言。例如,上述示例可使用 C 编写一个结构,以及随同的一组数据结构,可使用数组或链表来存放记录;当构造函数函数返回一个抽象句柄时,就对用户隐藏了真实的实现过程。

相关资讯

荣耀终端
365防伪查询系统

荣耀终端

⌚ 06-30 👁️ 7152
交通银行信用卡在线申请要多久?审批要几天?
365防伪查询系统

交通银行信用卡在线申请要多久?审批要几天?

⌚ 06-29 👁️ 1800