写一个MyStack类,表示“栈”这种数据结构。
栈在表示上,就如同一个单向开口的盒子,每当有新数据进入时,都是进入栈顶。其基本操作为push和pop。push表示把一个元素加入栈顶,pop表示把栈顶元素弹出。如图:
栈的基本操作:
push(Object o):表示把元素放入栈
Object pop():返回栈顶元素,并把该元素从栈中删除。如果栈为空,则返回null值。
Object peek():返回栈顶的元素,但不把该元素删除。如果栈为空,则返回null值。
boolean isEmpty():判断该栈是否为空。
int size():返回该栈中元素的数量。
要求:利用List,实现栈。
。
。
。
。
。
。
。
。
。
。
。
。
class MyStack2 {
List<Object> list = new LinkedList<>();
// 表示把元素放入栈
void push(Object o) {
list.add(o);
}
// 返回栈顶元素,并把该元素从栈中删除。如果栈为空,则返回null值。
Object pop() {
if (list.isEmpty()) {
return null;
}
Object count = list.get(list.size() - 1);
list.remove(list.size() - 1);
return count;
}
// 返回栈顶的元素,但不把该元素删除。如果栈为空,则返回null值。
Object peek() {
if (list.isEmpty()) {
return null;
}
return list.get(list.size() - 1);
}
// 判断该栈是否为空。
boolean isEmpty() {
if (list.isEmpty()) {
return true;
}
return false;
}
// 返回该栈中元素的数量。
int size() {
return list.size();
}
}