【发布时间】:2015-07-22 12:00:51
【问题描述】:
我仍然不知道在哪里实现第二个堆栈。我应该再上一节课吗?我不太确定如何完成。我会继续寻找。任何帮助,将不胜感激!我也无法判断我的 pop() 方法是否有效。我打印了堆栈。
输出:
真的
5
10
15
20
25
30
35
假的
public class twoStack {
int maxSize = 10;
int top;
int top2;
int arr[];
public twoStack(int x)
{
maxSize = x;
arr = new int[maxSize];
top = 0;
top2 = maxSize;
}
//push pop empty peek
public boolean empty()
{
if(top == 0)
{
return true;
}
else
{
return false;
}
}
public boolean empty2()
{
if(top2 == maxSize)
{
return true;
}
else
{
return false;
}
}
public void push(int x)
{
if (top<maxSize)
{
arr[top] = 10;
top++;
}
else
{
System.out.print("Stack overflow");
}
}
public void push2(int x)
{
if(top2<0)
{
arr[top2] = 0;
top2--;
}
else
{
System.out.print("Stack Overflow");
}
}
@SuppressWarnings("null")
public Object pop()
{
if(!this.empty())
{
int temp = (int) this.peek();
arr[top-1]=(Integer) null ;
top--;
return temp;
}
else
{
return null;
}
}
@SuppressWarnings("null")
public Object pop2()
{
if(!this.empty2())
{
int temp = (int) this.peek();
arr[top+1]=(Integer) null;
top++;
return temp;
}
else
{
return null;
}
}
public Object peek()
{
if (!this.empty())
{
return arr[top-1];
}
else
{
return null;
}
}
public Object peek2()
{
if(!this.empty2())
{
return arr[top+1];
}
else
{
return null;
}
}
}
//mainstack
package twoStack;
import java.util.Stack;
public class mainStack {
public static void main(String[] args) {
//MM(main method)
Stack<Integer> myStack= new Stack<Integer>();
System.out.println(myStack.empty());
myStack.push(5);
System.out.println(myStack.peek());
myStack.push(10);
System.out.println(myStack.pop());
myStack.push(15);
System.out.println(myStack.peek());
myStack.push(20);
System.out.println(myStack.peek());
myStack.push(25);
System.out.println(myStack.pop());
myStack.push(30);
System.out.println(myStack.peek());
myStack.push(35);
System.out.println(myStack.peek());
myStack.push(40);
System.out.println(myStack.empty());
}
}
【问题讨论】:
-
用预期的结果编写你的测试。使用调试器单步调试您的代码,看看哪里出了问题。
-
很多代码有问题,很难决定从哪里开始。如:将
E推入ints的数组中;任何地方都没有创建数组;没有显示具体类(只有一个抽象类); ...它一直在继续。 -
@MarkoTopolnik 嗨!你把我引向了正确的方向,谢谢。我找到了另一本书,现在我能够实现一个有效的完整堆栈。我不知道如何将同一个数组中的第二个堆栈放在一起。另外我不知道如何编辑我的问题以显示我的更新。抱歉,我对此很陌生!
-
您可以将所有奇数索引分配给一个堆栈,将所有偶数索引分配给另一个堆栈