Java堆栈链表

Java堆栈链表,java,stack,queue,Java,Stack,Queue,我已使用以下代码行声明了对象队列节点: Queue<Node> queue; queue = new LinkedList<Node>(); 队列; 队列=新的LinkedList(); 然而,当我声明一个节点对象的堆栈时,用堆栈替换队列是不起作用的。为什么会这样?还有,到底是什么 queue = new LinkedList<Node>(); queue=newlinkedlist(); 什么意思?这是否意味着正在创建节点对象的链接列表,并且可以在

我已使用以下代码行声明了对象队列节点:

Queue<Node> queue;
queue = new LinkedList<Node>();
队列;
队列=新的LinkedList();
然而,当我声明一个节点对象的堆栈时,用堆栈替换队列是不起作用的。为什么会这样?还有,到底是什么

queue = new LinkedList<Node>(); 
queue=newlinkedlist();
什么意思?这是否意味着正在创建节点对象的链接列表,并且可以在队列中


我正在使用开放式课件学习数据结构和算法,我是一名初学者。谢谢

在Java中,由于遗留的原因,
堆栈
是一个类,而不是一个接口。因此,
LinkedList
不能分配给类型为
Stack
的变量

Deque
接口声明后进先出操作(尽管它也声明FIFO操作),而
LinkedList
实现
Deque

当你这样做的时候

queue = new LinkedList<Node>();
queue=newlinkedlist();

您正在创建一个
链接列表
,但正在通过类型
队列
引用它,这样只会公开FIFO操作。这将确保以后,
Queue
的其他实现可以通过仅更改上面的行来替换。

在Java中,由于遗留原因,
堆栈
是一个类,而不是一个接口。因此,
LinkedList
不能分配给类型为
Stack
的变量

Deque
接口声明后进先出操作(尽管它也声明FIFO操作),而
LinkedList
实现
Deque

当你这样做的时候

queue = new LinkedList<Node>();
queue=newlinkedlist();
您正在创建一个
链接列表
,但正在通过类型
队列
引用它,这样只会公开FIFO操作。这将确保以后,
Queue
的其他实现可以通过仅更改上面的行进行交换

这是否意味着正在创建和删除节点对象的链接列表 你可以排队吗

否这意味着队列使用的底层数据结构是LinkedList,并且您可以添加类型为
Node

如果您不熟悉此构造,您应该阅读泛型
LinkedList()

这是否意味着正在创建和删除节点对象的链接列表 你可以排队吗

否这意味着队列使用的底层数据结构是LinkedList,并且您可以添加类型为
Node

如果您不熟悉此构造,则应该阅读泛型
LinkedList()

Queue Queue
表示变量队列属于“节点队列”类型<代码>队列是接口而不是类

Java的LinkedList类实现了队列接口,因此
Queue=newLinkedList()完全可以

Java堆栈是一个实际的类,它没有实现Queue接口,因此您不能将其替换为。

Queue Queue
表示变量Queue属于“节点队列”类型<代码>队列
是接口而不是类

Java的LinkedList类实现了队列接口,因此
Queue=newLinkedList()完全可以


Java堆栈是一个实际的类,它没有实现队列接口,因此不能将其替换为。

这是因为Java.util.LinkedList实现了Java.util.Queue,但它不是一个Java.util.Stack,尽管它有push和pop方法。Stack是一个遗留类,不建议使用它,但如果您仍然想使用它,这是一种方法

Stack<Node> stack = new Stack<Node>();
Stack Stack=新堆栈();

这是因为java.util.LinkedList实现了java.util.Queue,但它不是java.util.Stack,尽管它有push和pop方法。Stack是一个遗留类,不建议使用它,但如果您仍然想使用它,这是一种方法

Stack<Node> stack = new Stack<Node>();
Stack Stack=新堆栈();

谢谢。那么可以这样声明-Stack intStack=new Stack()?与中一样,Stack类实现了一个整数数组?谢谢。那么可以这样声明-Stack intStack=new Stack()?与中一样,Stack类实现了一个整数数组?