import java.util.Arrays;
public class MyStack {
private int [] elements;
private int size;
private final int DEFAULT_CAPACITY = 5;
public MyStack() {
this.elements = new int[DEFAULT_CAPACITY];
}
public MyStack(int capacity) {
if (capacity<0){
throw new RuntimeException("数组大小不能小于0");
}
else if(capacity>0){
this.elements = new int[capacity];
}
else{
this.elements = new int[DEFAULT_CAPACITY];
}
}
public void push(int data){
//数组是否需要扩容
ensureCapacity();
elements[size] = data;
size++;
}
public int pop (){
int top = peek();
size--;
return top;
}
public int peek(){
if (size==0){
throw new RuntimeException("栈为空");
}
int top = elements[size-1];
return top;
}
private void ensureCapacity() {
if (size==elements.length){
this.elements = Arrays.copyOf(elements,elements.length *2);
}
}
public void display() {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < size; i++) {
if (i != size - 1) {
sb.append(elements[i]+",");
}else{
sb.append(elements[i]);
}
// for (int i:elements
// ) {
// sb.append(i+" ");
// }
}
sb.append("]");
System.out.println(sb.toString());
}
public int getSize(){
return size;
}
//清空
public boolean empty () {
return size == 0;
}
}
[java数据结构]栈
最新推荐文章于 2024-09-14 18:46:05 发布