用数组实现栈
栈的基本功能
- 创建
- 压入
- 弹出
- 栈空
- 栈满
基本原理
简单步骤
初始化的变量:
- top = -1 代表栈顶
- maxSize栈内元素数量
- 创建容量为maxSize的stackArray数组
实现主要功能的类:
-
push:
top++
stackArray[top] = 元素
maxSize++ -
pop:
stackArray[top] = 返回的元素
top- -
maxSize++ -
判空:
return (top == -1)
-
判满:
-
return (top == maxSize - 1)
代码:
public class Stack{
private int maxSize;
private char[] stackArray;
private int top;
//创建
public Stack(int s) {
maxSize = s;
stackArray = new char[maxSize];
top = -1;
}
//压入
public void push(char j) {
stackArray[++top] = j;
}
//弹出
public char pop() {
return stackArray[top--];
}
//取顶元素
public char getTop() {
return stackArray[top];
}
//栈空
public boolean isEmpty() {
return (top == -1);
}
//栈满
public boolean isFull() {
return (top == maxSize - 1);
}
//测试
public static void main(String[] args) {
Stack theStack = new Stack(10);
theStack.push('a');
theStack.push('b');
theStack.push('c');
theStack.push('d');
char test = theStack.getTop();
System.out.println(test);
while (!theStack.isEmpty()) {
char value = theStack.pop();
System.out.print(value);
System.out.print(" ");
}
System.out.println("");
}
}