【问题标题】:Java Linked List Stack push function not changing the dataJava Linked List Stack推送功能不更改数据
【发布时间】: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;
 }

【问题讨论】:

    标签: java linked-list stack


    【解决方案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/

    【讨论】:

      猜你喜欢
      • 2015-07-30
      • 1970-01-01
      • 2017-06-24
      • 1970-01-01
      • 2014-05-24
      • 2020-08-13
      • 2015-12-01
      • 2019-10-03
      • 2021-10-19
      相关资源
      最近更新 更多