棧的實現(基於陣列)
阿新 • • 發佈:2018-12-09
(基於已寫好的動態陣列實現的棧)
首先寫一個介面
public interface Stack<E> {
int getSize();
boolean isEmpty();
boolean contains(E e);
//入棧
void push(E e);
//檢視棧頂的資料
E peek();
//出棧
E pop();
}
再寫一個繼承該介面的棧類
/** * 基於陣列實現棧 * @author hcc * */ public class HArrayStack<E> implements Stack<E> { private HGenericityArrayList<E> data; public HArrayStack() { data = new HGenericityArrayList<E>(); } public HArrayStack(int capacity) { data = new HGenericityArrayList<E>(capacity); } public int getCapacity() { return data.getCapacity(); } @Override public int getSize() { // TODO Auto-generated method stub return data.getSize(); } @Override public boolean isEmpty() { // TODO Auto-generated method stub return data.isEmpty(); } @Override public boolean contains(E e) { // TODO Auto-generated method stub return data.contains(e); } @Override public void push(E e) { // TODO Auto-generated method stub data.add(e); } @Override public E peek() { // TODO Auto-generated method stub return data.get(data.getSize()-1); } @Override public E pop() { // TODO Auto-generated method stub return data.remove(data.getSize()-1); } @Override public String toString() { StringBuilder str = new StringBuilder(); str.append("HArrayStack:"); str.append(data); return str.toString(); } }