Ошибка метода java pop () в стеке с использованием одного связанного списка - PullRequest
0 голосов
/ 07 мая 2018

В моем проекте, над которым я работаю, я использовал единый связанный список для реализации стека, затем я должен переместить элементы стека в двоичное дерево .. и у меня проблема в методе pop (), он работает хорошо до последнего pop ().

потому что я использую стек, поэтому удаление элемента будет последним и это где у меня ошибка ..

это мой код для метода removeLast из одного связанного списка:

public class SLinkedList {
SNode head = null;
SNode tail = null;
int size = 0;

public int removeLast(){
    if(size == 0){
        return 0;
    }else{
        SNode e = null;
        SNode a = null;
        a = tail;
        e = head;
        while(e.next != tail){
                e = e.next;
        }
        tail = e;
        tail.next = null;
        size --;
        return a.data;
      }}}

и это мой код реализации стека:

public class StackSingle {
SLinkedList stack;

public StackSingle(){
    stack = new SLinkedList();
}

public void push(int s){
    stack.addLast(new SNode(s));
}

public int pop(){
    return stack.removeLast();
}

public void printStack(){
    stack.print();
}

public int getSize(){
    return stack.size;
}

и в основном:

StackSingle s = new StackSingle();
    s.push(5);
    s.push(8);
    s.push(2);
    s.push(4);
    s.push(1);
    s.push(6);
    s.push(7);
    s.push(3);
    s.push(9);


    Tree t = new Tree();
    t.add(s.pop());
    t.add(s.pop());
    t.add(s.pop());
    t.add(s.pop());
    t.add(s.pop());
    t.add(s.pop());
    t.add(s.pop());
    t.add(s.pop());
    t.add(s.pop());

Я все еще новичок в этом и буду очень благодарен за помощь

...