package 算法;
/**
* 数组实现
*/
public class test3 {
/**
* 数组实现 栈
*/
public static class ArrStack{
public int size = 0;
public int capacity = 0;
public int[] arr =null;
//初始化栈容量
public ArrStack(int capacity) {
this.capacity = capacity;
arr = new int[]{capacity};
}
public void pull(int value){
if (size >= capacity-1) {
throw new RuntimeException("满了");
}
arr[size++]=value;
}
public int pop(){
if (size == 0) {
throw new RuntimeException("空");
}
return arr[size--];
}
}
/**
* 数组实现 队列
*/
public static class DoubleArrQueue{
public int size = 0;
public int limit = 0;
public int[] arr =null;
//头
public int head = 0;
//尾巴
public int tail = 0;
//初始化栈容量
public DoubleArrQueue(int capacity) {
this.limit = capacity;
arr = new int[]{capacity};
}
public void pull(int value){
if (size >= limit-1) {
throw new RuntimeException("满了");
}
size++;
head = getSize(head);
arr[head] = value;
}
public int poll(){
if (size == 0) {
throw new RuntimeException("没了");
}
size--;
int ans = arr[tail];
tail = getSize(tail);
return ans;
}
public int getSize(int i){
return i < limit - 1 ? i + 1 : 0;
}
}
}
数组实现 栈 和队列
猜你喜欢
转载自blog.csdn.net/u010191034/article/details/120969556
今日推荐
周排行