本文共 1930 字,大约阅读时间需要 6 分钟。
package task2;/** * 功能:数组、链表实现队列 * Created by liumao on 2019/8/7 */public class Queue implements com.imooc.oop.queue.Queue { /** * 数组队列实现 */ public static class ArrayQueue { private Object[] arrQueue; private int front; private int rear; public ArrayQueue(int size) { arrQueue = new Object[size]; front = 0; rear = 0; } public boolean enQueue(Object obj) { if ((rear + 1) % arrQueue.length == front) { return false; } arrQueue[rear] = obj; rear = (rear + 1) % arrQueue.length; return true; } public Object deQueue() { if (rear == front) { return null; } Object obj = arrQueue[front]; front = (front + 1) % arrQueue.length; return obj; } } /** * 链表队列实现 */ public static class LinkedQueue implements com.imooc.oop.queue.Queue { private Node rear; private Node front; private int size; public LinkedQueue(int size) { this.size = size; this.rear = null; this.front = null; } public class Node { Object t; Node next; } public boolean isEmpty() { return rear == null; } public void enQueue(Object data) { Node oldLast = front; front = new Node(); front.next = null; if (size == 0) { rear = front; } else { oldLast = rear; rear = front.next; front.next = rear; } size++; } public Object deQueue() { Object t = rear.t; rear = front.next; if (size == 0) { front = null; } size--; return t; } }} 转载地址:http://afps.baihongyu.com/