В моем проекте, над которым я работаю, я использовал единый связанный список для реализации стека, затем я должен переместить элементы стека в двоичное дерево ..
и у меня проблема в методе 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());
Я все еще новичок в этом и буду очень благодарен за помощь