У меня есть общий класс LinkedStack с обратным методом LinkedStack Он создает новый LinkedStack, который говорит newLinkedstack и выталкивает элементы из текущего стека, выбирая их. Таким образом, в конце операции текущий стек остается пустым, а newLinkedStack содержит те же элементы/элементы, которые были в «этом» стеке, только в обратном порядке.Обратный стек возвращает один элемент
Мой код компилируется, но когда я создаю и заполняю стек, а затем распечатываю содержимое, Я получаю только один результат.
public LinkedStack<T> rev()
{
LinkedStack<T> revStack=new LinkedStack<T>();
//final int SIZE=this.size();
while(!(this.empty)){//for(int i=0;i<SIZE;i++)
{
revStack.push(this.pop());
}
return revStack;
}
Например
LinkedStack<String> newLS = new LinkedStack<String>();
newLS.push("noid");
newLS.push("enilec");
newLS.push("River");
newLS.push("Healing");
newLS.push("Pain");
и newLS.rev()
возвращает Pain
вместо перевернутой стека
UPDATE
Вот мой метод поп
public T pop()
{
T element=peek();
top=top.next;
return element;
}
У меня есть два метода толчка это один перемещает каждый элемент из входного стека текущего стека оставляя входную стек из аргументов пустого
public void push(LinkedStack<T> stack){
//int SZE = stack.size();
while(!(stack.empty())){//formally for(int i=0;i<SZE;i++){
this.push(stack.pop());}}
Вот моего другого толчок метод
public void push(T element)
{
top=new Node<T>(item,top);
}
Вы должны показать реализацию push и pop. И при необходимости другие методы. – Mohayemin