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推送功能不更改数据的主要内容,如果未能解决你的问题,请参考以下文章