Как вставить или вытолкнуть из связанного списка стек - PullRequest
0 голосов
/ 02 октября 2018

Мне нужно нажать и извлечь из стека связанных списков, и это код, который я реализовал, чтобы поместить объект на вершину стека, однако, учитывая конструктор, я не понимаю, как извлечь что-то из стека.

это код, который у меня есть для push

public void push(Q obj) {
  Node<Q> node = new Node(obj);
    if (top == null) {
        top = node;
    } 
    else {
        node.setNext(top);
        top = node;
    }

    length++;
}

И это конструктор, который мне дали для Pop

Public T pop() {


    //Change the return statement 
    return null;
}

это переменные, которые я определилна вершине моего кода

 private int length = 0;


private Node<Q> top = null;

1 Ответ

0 голосов
/ 02 октября 2018

Во-первых, это не конструктор для pop.Прочитайте, что такое конструктор и как он используется в классе.

В вашем коде узел помещается в начало связанного списка, а верхняя точка указывает на последний вставленный узел.

Поэтому во время всплывающего окна вам нужно удалить текущую вершину и изменить вершину науказать на второй последний узел нажал.Сохраните текущий верх к некоторой временной переменной, переместите верхний узел, чтобы он указывал на второй последний, и верните временную переменную.

public T pop() {
    if(top!=null){
      Node<Q> temp = top;
      top = top.next;
      temp.next = null;
      return temp;
     }
    return null;
}
...