堆栈实验
实验要求:
请设计一个堆栈类Stack,用于存放整数类型
并实现以下方法
- public Stack() 构造函数, 创建一个空栈
- public boolean empty() 如果栈为空则返回true,否则返回false public int
- peek() 返回栈顶元素
- public int pop() 返回并删除栈顶元素
- public int push(int a) 在栈顶增加一个新元素
- public int search(int a) 返回栈中指定元素的位置(可以设计栈顶元素的下标为0,也可设计栈底元素的下标为0)
编写TestStack类,在main方法中测试Stack类的各个方法
说明:可在链表实验的基础上完成会更简单
此题非常简单,按要求上的步骤打就行了。
代码如下:
import java.io.*;
class Node {
int value;
Node next;
// 创建Node
public Node(int value) {
this.value = value;
this.next = null;
}
// 返回value
public int getValue() {
return value;
}
}
class Stack {
public Node header;// 指向堆栈底端的指针
public Node rear;// 指向堆栈顶端的指针
static int valueCount;// 栈内元素个数
int size;// 栈大小
// 构造函数, 创建一个空栈
public Stack() {
header = null;
valueCount = 0;
size = 0;
}
// 设置堆栈大小
public void setSize(int size) {
this.size = size;
}
// 如果栈为空则返回true,否则返回false
public boolean isEmpty() {
return header == null;
}
// 判断栈是否满了
public boolean isFull() {
if (valueCount == size) {
return true;
} else {
return false;
}
}
// 返回栈顶元素
public int peek() {
if (this.isEmpty()) {
System.out.println("空栈 ");
}
return rear.getValue();
}
// 返回并删除栈顶元素
public int pop() {
Node newNode = header;
if (