在Java中给出这个代码:
import java.util.*;
public class StackLab {
int top;
int[] array;
public static void main(String[] args)
{
Stack s = new Stack();
initStack(s);
push(s, 8);
peek(s);
}
public static void initStack(Stack s)
{
s.top = -1;
s.array = new int[100];
}
public static void push(Stack s, int v)
{
s.top++;
s.array[s.top] = v;
}
public static int peek(Stack s)
{
return s.array[s.top];
}
public static void pop(Stack s)
{
s.top--;
}
public static boolean isEmpty(Stack s)
{
return s.top == -1;
}
}
我收到错误,顶部和数组无法解析或不是字段。我不明白为什么会出现这个错误。我在开始之前,在main之前声明了top和array。请有人向我解释我应该如何更改此声明?我想要的只是执行基本的堆栈交互(push,pop,peek,isEmpty),但我已经碰壁了,因为我无法看到我的代码/变量声明有什么问题。提前感谢您的帮助。
答案 0 :(得分:3)
此
Stack s = new Stack();
应该是
StackLab s = new StackLab();
您的所有方法参数都应该是StackLab
类型,而不是Stack
。
Stack
是java.util.Stack
,并且没有任何可见字段。