目录
手写MyStack
package com.zxl.ch02;
/**
* 栈的底层是数组,遵循规则:后入先出
*/
public class MyStack {
private long[] arr;
private int top;
public MyStack(){
this.arr = new long[10];
this.top = -1;
}
public MyStack(int maxsize){
this.arr = new long[maxsize];
this.top = -1;
}
//添加元素
public void push(long value){
arr[++top] = value;
}
//移除元素:移除栈顶元素
public long pop(){
return arr[top--];
}
//查看数据
public long peek(){
return arr[top];
}
//判断是否为空
public boolean isEmpty(){
return top == -1;
}
//判断是否满了
public boolean isFull(){
return top == arr.length-1;
}
}
手写MyQueue以及循环队列
package com.zxl.ch02;
public class MyQueue {
private long[] arr;
private int front;//队首,用来移除操作
private int end;//队尾,用来添加操作
private int elements;//有效元素个数
public MyQueue(){
this.arr = new long[10];
this.elements = 0;
this.front = 0;
this.end = -1;
}
public MyQueue(int maxsize){
this.arr = new long[maxsize];
this.elements = 0;
this.front = 0;
this.end = -1;
}
//添加元素
public void insert(long value){
// if(end == arr.length-1){//循环队列
// end = -1;
// }
arr[++end] = value;
elements++;
}
//删除数据
public long remove(){
long value = arr[front++];
// if(front == arr.length){循环队列
// front = 0;
// }
elements--;
return value;
}
//查看数据
public long peek(){
return arr[front];
}
//判断是否为空
public boolean isEmpty(){
return elements == 0 ;
}
//判断是否满了
public boolean isFull(){
return elements == arr.length;
}
}