Java 数据结构----Java队列Queue

4 篇文章 0 订阅
2 篇文章 0 订阅

队列是一种简单的数据结构,与栈的典型特点后入先出(LIFO)相对应,它的典型特点是先入先出(FIFO)。队列至少应包括两个基本的方法,就是入队列和出队列,另外,其基本方法如下:

  1. add(E e)  在队列的队尾添加对象
  2. remove()  从队首删除一个对象,出队列
  3. peek()  查看队列的队首元素

简单队列示例:

public class Queue<E> {

	private int front;

	private int rear;

	private static final int DEFAULT_SIZE = 10;

	private Object[] queue;

	private int size;

	public Queue() {
		queue = new Object[DEFAULT_SIZE];
		size = 0;
		front = 0;
		rear = -1;
	}

	public Queue(int initSize) {
		queue = new Object[initSize];
		size = 0;
		front = 0;
		rear = -1;
	}

	/**
	 * 入队操作
	 * 
	 * @param e
	 *            待插入队列的对象
	 * @return 插入成功返回true,否则返回false
	 */
	public boolean add(E e) {
		if (isFull()) {
			return false;
		}
		if (rear == queue.length - 1) {
			rear = -1;
		}
		queue[++rear] = e;
		size++;
		return true;
	}

	/**
	 * 出队操作
	 * 
	 * @return
	 */
	public E remove() {
		if (isEmpty()) {
			return null;
		}
		E temp = peek();
		if (front == queue.length - 1) {
			front = 0;
		}
		queue[front++] = null;
		size--;
		return temp;
	}

	/**
	 * 查看队列的对头对象
	 * 
	 * @return
	 */
	public E peek() {
		if (size() > 0) {
			return (E) queue[front];
		}
		return null;
	}

	public int size() {
		return this.size;
	}

	public boolean isEmpty() {
		return size == 0;
	}

	public boolean isFull() {
		return size == queue.length;
	}

Java API中的Queue是一个接口,常用的类LinkedList间接实现了该接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值