03#Stack&Queue

时间:2019-01-18
本文章向大家介绍03#Stack&Queue,主要包括03#Stack&Queue使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
  • 栈的构造和应用
public class MyStack {
	//底层实现是一个数组
	private int[] arr;
	private int top;
	/*
	 * 默认的构造方法
	 */
	public MyStack(){
		arr = new int[10];
		top = -1;
	}
	/*
	 * 带参数的构造方法
	 */
	public MyStack(int max){
		arr = new int[max];
		top = -1;
	}
	/*
	 * 添加数据
	 */
	public void push(int value){
		arr[++top] = value;
	}
	/*
	 * 移除数据
	 */
	public int pop(){
		return arr[top--]; 
	}
	/*
	 * 查看数据
	 */
	public int peek(){
		return arr[top];
	}
	/*
	 * 判断是否为空
	 */
	public boolean isEmpty(){
		return top == -1;
	}
	/*
	 * 判断是否满了
	 */
	public boolean isFull(){
		return top == arr.length - 1;
	}
}
  • 队列的构造和应用
public class MyQueue {
	//底层使用数组实现
	int[] arr;
	int elements;
	int front;
	int end;
	/*  
	 * 默认构造
	 */
	public MyQueue(){
		arr = new int[10];
		elements = 0;
		front = 0;
		end = -1;
	}
	public MyQueue(int maxsize){
		arr = new int[maxsize];
		elements = 0;
		front = 0;
		end = -1;
	}
	/*
	 * 添加数据
	 */
	public void insert(int value) {
		elements++;
		arr[++end] = value;
	}
	/*
	 * 删除数据,排头开始删除
	 */
	public int remove(){
		elements--;
		return arr[front++];
	}
	/*
	 * 查看数据
	 */
	public int peek(){
		return arr[front];
	}
	/*
	 * 判断是否为空
	 */
	public boolean isEmpty(){
		return elements == 0;
	}
	/*
	 * 判断是否满了
	 */
	public boolean isFull(){
		return elements == arr.length; 
	}
}