Java Linked List Stack推送功能不更改数据
Posted
技术标签:
【中文标题】Java Linked List Stack推送功能不更改数据【英文标题】:Java Linked List Stack push function not changing the data 【发布时间】:2021-11-25 10:34:48 【问题描述】:我无法更改函数的参数或 Node 构造函数。当我调用 push 函数 - push(T element1)
- 然后用不同的元素 - push(T element2)
再次调用它时,它根本不会改变节点的数据,只是给它 element1
数据。
public void push(T element)
/* YOUR CODE HERE */
Node<T> newNode = new Node<T>(element, top);
if(isEmpty())
top = bottom = newNode;
System.out.println("Stack is empty");
newNode.setData(element);
newNode.setLink(top);
top = newNode;
count++;
return;
【问题讨论】:
【参考方案1】:您的代码有几个问题:
Node<T> newNode = new Node<T>(element, top);
您在构造函数中传递数据和 nextNode,因此您不必在代码中进一步设置它们。
您也不必在 void 方法的末尾使用return;
。
此外,在一个用于堆栈实现的 LinkedList 中你很可能不需要底部,它应该是单 LinkedList。
public void push(T element)
Node<T> newNode = new Node<T>(element, top);
top = newNode;
count++;
这应该是工作代码示例。
这是解决您问题的好方法,您可以从这里获得灵感:https://www.geeksforgeeks.org/implement-a-stack-using-singly-linked-list/
【讨论】:
以上是关于Java Linked List Stack推送功能不更改数据的主要内容,如果未能解决你的问题,请参考以下文章