用数组结构实现大小固定的栈
public class e01ArrayStack {
private Integer[] arr;
private Integer index;
public e01ArrayStack(int initSize){
if(initSize<0){
throw new IllegalArgumentException("输入的size小于0");
}
arr=new Integer[initSize];
index=0;
}
public void push(int obj){
if (index==arr.length){
throw new ArrayIndexOutOfBoundsException("full");
}
arr[index++]=obj;
}
public Integer peek(){
if (index==0){
return null;
}
return arr[index-1];
}
public Integer pop(){
if (index==0){
throw new ArrayIndexOutOfBoundsException("empty");
}
return arr[--index];
}
public static void main(String[] args) {
e01ArrayStack e01ArrayStack=new e01ArrayStack(3);
e01ArrayStack.push(2);
System.out.println(e01ArrayStack);
e01ArrayStack.push(3);
System.out.println(e01ArrayStack);
e01ArrayStack.push(4);
System.out.println(e01ArrayStack);
System.out.println(e01ArrayStack.peek());
e01ArrayStack.pop();
e01ArrayStack.pop();
e01ArrayStack.pop();
System.out.println(e01ArrayStack.peek());
}
}
用数组结构实现大小固定的队列
public class e02ArrayQueue {
private Integer[] arr;
private Integer start;
private Integer end;
private Integer size;
public e02ArrayQueue(int initSize){
if (initSize<0){
throw new IllegalArgumentException("您输入发热size小于0");
}
arr=new Integer[initSize];
start=0;
end=0;
size=0;
}
public void push(int obj){
if (size==arr.length){
throw new ArrayIndexOutOfBoundsException("full");
}
size++;
arr[end]=obj;
end=end==arr.length-1?0:end+1;
}
public Integer poll(){
if (size==0){
throw new ArrayIndexOutOfBoundsException("empty");
}
size--;
int temp=arr[start];
start=start==arr.length-1?0:start+1;
return temp;
}
public Integer peek(){
if (size==0){
return null;
}
return arr[start];
}
}