栈被称为抽象数据类型,它只是一个interface.Then,为什么栈在数据结构下,这是一个数据结构还是抽象数据类型?两者是相同还是不同?
发布于 2012-12-28 19:32:07
来自维基百科:
Abstract data types是纯粹的理论实体,用于简化抽象算法的描述,对数据结构进行分类和评估在计算机科学中,
data structure是在计算机中存储和组织数据以便有效使用的一种特殊方式描述
stack的一种方式是后进先出(LIFO)抽象数据类型和线性数据结构。堆栈可以有任何抽象数据类型作为元素,但其特点是有两个基本操作,称为推送和弹出(或拉入)。
因此,可以得出结论,抽象数据类型是理论上的,但当实现时被称为数据结构。
更清楚地说:
一个数据类型可以被认为是抽象的,当它被定义为对它的操作时,它的实现是隐藏的(这样我们总是可以出于效率的原因用一个实现替换另一个实现,而这不会干扰程序中的任何东西)。
发布于 2012-12-28 19:32:20
Stack是一种抽象的数据类型,也被称为后进先出(LIFO)的线性数据结构(.It strategy.so LIFO),它是数据结构的一部分。
发布于 2017-07-15 22:42:08
抽象数据类型(ADT)是数据集的理论规范集,以及可以对集中的数据执行的操作集。当数据类型独立于各种具体实现时,它被称为抽象。
让我们假设Integer支持加法、乘法、除法运算。
这些操作不适用于字符串数据,因为它们不支持multiplication.hence整数is not ADT。
现在你明白了,
如果您对数据类型的操作不关心数据的类型,那么它被称为抽象数据结构,例如,堆栈、列表、队列…这里这些东西支持像push(),pop(),add(),delete()这样的操作,而不关心我们推什么,弹出什么,删除什么。
在这里,根据实现的类型(列表、堆栈、队列),我们可以决定如何管理这些ADT。
为什么Stack是抽象数据类型?
`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");
}`我不认为需要更多的解释。
https://stackoverflow.com/questions/14068767
复制相似问题