习题 写一个MyStack类,表示“栈”这种数据结构。

               写一个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();
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章