反转堆栈返回一个项目

时间:2013-10-03 03:58:23

标签: java reference linked-list stack reverse

我有一个带有LinkedStack反向方法的通用LinkedStack类 它创建一个新的LinkedStack说newLinkedstack并通过弹出它们来推送当前堆栈中的项目。因此,在操作结束时,当前堆栈保持为空,newLinkedStack包含相同的项目/元素,这些项目/元素仅以相反的顺序位于“this”堆栈中。

我的代码编译但是当我创建并填充堆栈然后打印出内容时, 我只得到一个结果。

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而不是反向堆栈

更新

这是我的pop方法

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);
}

1 个答案:

答案 0 :(得分:0)

我不确定LinkedStack的来源,但似乎该错误是由该类的实现引起的。

如果您需要更具体的帮助,则必须发布更多源代码。