寫一個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();
}
}