了解堆栈(数据结构)、堆栈类、链表java?
我试图了解数据结构和ADT。 到目前为止,我已经阅读了大量的参考资料,但我并不清楚两者之间的区别
所以我的理解是stack,linkedlist和queue是数据结构,有一些类命名为stack,linkedlist作为ADT在Java中使用这些数据结构。 但一些书籍或资源称堆栈是一个集合,而其他资源称堆栈是数据结构。我对所有的差异都感到非常困惑,对于如何使用linkedlist实现堆栈感到困惑
有谁能解释清楚一点吗?我知道这将是一个非常基本的问题,但我真的需要理解
非常感谢你
# 1 楼答案
也许你会发现这些解释很有用。它们附带了一个很好的动画(如java小程序)
# 2 楼答案
数据结构是一种组织数据的方法,以便有效地使用数据。 这主要包括可以存储什么类型的数据,以及如何存储和处理数据
示例1:我们可以将相同数据类型的元素列表存储在数组数据结构中,可以使用数组的索引访问元素
示例2:我们可以将相同数据类型的元素列表存储在堆栈数据结构中,元素可以以后进先出的方式访问
抽象数据类型是指定所需行为而不指定实现的数据类型。例如,对于java中的接口,定义要执行的操作和预期行为,但实现是隐藏的
Java中已经定义了一些类,它们为您提供了数据结构的行为。其中一个类是
java.util.Stack
类,它提供了可以在堆栈上执行的操作,但隐藏了这些操作的实现细节。你可以在我的博客https://hetalrachh.home.blog/2019/12/25/stack-data-structure/上查看更多关于java.util.Stack
类的信息堆栈可以通过多种方式实现,这意味着使用不同的数据结构(如数组和链表)实现后进先出行为。你可以在我的博客http://hetalrachh.home.blog/2020/01/12/stack-implementation-using-array-and-linkedlist-in-java/上找到一个带有图表的详细解释
# 3 楼答案
堆栈是一种特殊类型的集合。这是一种数据结构
堆栈是一种线性数据结构,其中有一个又一个项
一个堆栈只能做3件事:
堆栈也称为“后进先出”
为什么会有这样的“限制”?现实生活中有几种情况会发生这种情况。在自助餐上,员工们把盘子一个接一个地放在一起,最上面的盘子(后进)是顾客取出的(先出)
我无法获得太多细节,但当你按照运算顺序计算时,堆栈是有用的(甚至是至关重要的)(你可能会得到编程任务,所以你不能依赖计算器),当你想在网络中找到最短的路径时(例如,在你和名人之间找到最短的Facebook好友路径)
# 4 楼答案
欢迎来到编程世界。每天新学期。;-)
从编程语言不可知的角度来看,堆栈是一种逻辑结构,具有push和pop等操作。这是一种抽象,一个数学概念,一种数据结构
现在,当我们讨论Java等特定编程语言时,Sun开发人员将几种常用的数据结构实现放入一个组中,称之为集合。在Java世界中,集合是一个概念,它也有Java类(http://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html),所有这些结构都继承自AbstractCollection,它还实现了一个名为Collection(http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html)的接口
因此,概念堆栈的Java实现也称为堆栈,但正如您从文档中看到的,类堆栈继承自抽象集合(参见http://docs.oracle.com/javase/7/docs/api/java/util/Stack.html),因此,它是一个Java集合