/*
* 使用链表模拟栈
*/
package Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.EmptyStackException;
public class listStack<E extends Object> {
private List<E> stack = new ArrayList<E>();
public listStack() { //初始化
}
public void clear() { //清空栈
stack.clear();
}
//是否空
public boolean isEmp() {
return stack.isEmpty();
}
public E getTop() { //获得栈顶元素
if (isEmp()) {
return null;
}
else {
return stack.get(stack.size()-1);
}
}
//入栈
public void push(E e) {
stack.add(e);
}
//出栈
public E pop() {
if (isEmp()) {
throw new EmptyStackException();
}
return stack.remove(stack.size()-1);
}
//获取栈深度
public int getSize() {
if (isEmp()) {
throw new EmptyStackException();
}
return stack.size();
}
public static void main(String[] args) {
listStack lStack =new listStack();
lStack.clear();
lStack.push(1);
lStack.push(2);
lStack.push(3);
lStack.pop();
System.out.println("栈的深度"+lStack.getSize());
System.out.println("栈顶元素"+lStack.getTop());
}
}
Java 链表模拟栈
最新推荐文章于 2022-11-26 16:03:07 发布