Java实现栈(先进后出)
栈的接口(interface)
public interface MyStackInterFace<E> {
public void push(E element);
public E pop();
public E peek();
public int getSize();
public boolean isEmpty();
}
栈的实现类,容器使用自定义的动态数组link
public class MyStack<E> implements MyStackInterFace<E> {
MyArray<E> array;
public MyStack(){
this(10);
}
public MyStack(int capacity){
array = new MyArray<>(capacity);
}
@Override
public void push(E element) {
array.addLast(element);
}
@Override
public E pop() {
E number = array.deleteLastElement();
return number;
}
@Override
public E peek() {
return array.getElementByIndex(getSize()-1);
}
@Override
public int getSize() {
return array.size;
}
@Override
public boolean isEmpty() {
return array.isEmpty();
}
@Override
public String toString() {
StringBuffer str = new StringBuffer();
str.append(String.format("栈的容量为:%d,实际存放数据数量为:%d",array.getCapacity(),getSize()));
str.append("[");
for (int i = 0; i < getSize(); i++) {
if (i != getSize()-1){
str.append(array.getElementByIndex(i)+",");
}else{
str.append(array.getElementByIndex(getSize()-1));
}
}
str.append("]");
str.append("栈顶");
return str.toString();
}
}