0

我有一个带有 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而不是反向堆栈

更新

这是我的流行方法

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

1 回答 1

0

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

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

于 2013-10-03T04:38:37.377 回答