首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是抽象数据类型(ADT)?

什么是抽象数据类型(ADT)?
EN

Stack Overflow用户
提问于 2013-05-16 07:15:56
回答 1查看 8.5K关注 0票数 0

我遇到了一个‘抽象数据类型’的定义,我无法理解。谁能解释一下,最好是举个例子?

抽象数据类型定义为组成数据类型的数据对象的数学模型以及操作这些对象的函数。

EN

回答 1

Stack Overflow用户

发布于 2013-05-16 07:23:03

在某些语言中,无所谓什么,我可以给你以下几点:

代码语言:javascript
复制
Stack make_stack();
void push(Stack stack, value);
value pop(Stack stack);

然后我可以说,假设您想将三个值推到堆栈上,然后弹出一个值。看起来可能是这样的:

代码语言:javascript
复制
Stack my_stack = make_stack();
push(my_stack, 14);             /* stack now contains: 14 */
push(my_stack, "foo");          /* stack now contains: 14 foo */
push(my_stack, 999);            /* stack now contains: 14 foo 999 */
x = pop(my_stack);              /* x = 999, stack contains 14 foo */

这是一种抽象数据类型:我定义了一个新类型,一个堆栈,并为您提供了一个抽象接口。也就是说,我以Stack的形式给出了组成数据类型的数据对象,正如您所说的那样,我给了您make_stackpushpop函数来操作它。

堆栈可以完全由列表、数组、堆或其他东西实现,并且没有外部可见的方法来知道什么。您所知道的就是有一个特定的API与它一起使用,并且API保证了您得到类似堆栈的行为。此堆栈是一种抽象数据类型。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16581226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档