首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么堆栈被称为抽象数据type.If堆栈是adt,那么如何实现堆栈?

为什么堆栈被称为抽象数据type.If堆栈是adt,那么如何实现堆栈?
EN

Stack Overflow用户
提问于 2012-12-28 19:24:17
回答 4查看 19K关注 0票数 3

栈被称为抽象数据类型,它只是一个interface.Then,为什么栈在数据结构下,这是一个数据结构还是抽象数据类型?两者是相同还是不同?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-28 19:32:07

来自维基百科:

Abstract data types是纯粹的理论实体,用于简化抽象算法的描述,对数据结构进行分类和评估

在计算机科学中,data structure是在计算机中存储和组织数据以便有效使用的一种特殊方式

描述stack的一种方式是后进先出(LIFO)抽象数据类型和线性数据结构。堆栈可以有任何抽象数据类型作为元素,但其特点是有两个基本操作,称为推送和弹出(或拉入)。

因此,可以得出结论,抽象数据类型是理论上的,但当实现时被称为数据结构。

更清楚地说:

一个数据类型可以被认为是抽象的,当它被定义为对它的操作时,它的实现是隐藏的(这样我们总是可以出于效率的原因用一个实现替换另一个实现,而这不会干扰程序中的任何东西)。

票数 5
EN

Stack Overflow用户

发布于 2012-12-28 19:32:20

Stack是一种抽象的数据类型,也被称为后进先出(LIFO)的线性数据结构(.It strategy.so LIFO),它是数据结构的一部分。

票数 0
EN

Stack Overflow用户

发布于 2017-07-15 22:42:08

抽象数据类型(ADT)是数据集的理论规范集,以及可以对集中的数据执行的操作集。当数据类型独立于各种具体实现时,它被称为抽象。

让我们假设Integer支持加法、乘法、除法运算。

这些操作不适用于字符串数据,因为它们不支持multiplication.hence整数is not ADT。

现在你明白了,

如果您对数据类型的操作不关心数据的类型,那么它被称为抽象数据结构,例如,堆栈、列表、队列…这里这些东西支持像push(),pop(),add(),delete()这样的操作,而不关心我们推什么,弹出什么,删除什么。

在这里,根据实现的类型(列表、堆栈、队列),我们可以决定如何管理这些ADT。

为什么Stack是抽象数据类型?

代码语言:javascript
复制
`Stack s = new Stack<>();
List l = new LinkedList<>();
s.push(45);
s.push("str");
//s.push("String");
if(s.peek().equals(45)){
    System.out.println("Treu");
}`

我不认为需要更多的解释。

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

https://stackoverflow.com/questions/14068767

复制
相关文章

相似问题

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