我有一个带有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);
}
答案 0 :(得分:0)
我不确定LinkedStack的来源,但似乎该错误是由该类的实现引起的。
如果您需要更具体的帮助,则必须发布更多源代码。