2013-10-03 3 views
0

У меня есть общий класс 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); 
} 
+0

Вы должны показать реализацию push и pop. И при необходимости другие методы. – Mohayemin

ответ

0

Я не уверен, где LinkedStack пришел, но кажется, что ошибка вызвана реализацией этого класса.

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

Смежные вопросы