• Implement Circular Queue using Array


    package com.javainuse;
    
    import java.util.Arrays;
    
    public class CircularQueueImplementation {
    
        public static void main(String[] args) {
    
            CircularQueue<Integer> circularQueue = new CircularQueue(8);
    
            circularQueue.enqueue(15);
            circularQueue.enqueue(16);
            circularQueue.enqueue(17);
            circularQueue.enqueue(18);
            circularQueue.enqueue(19);
            circularQueue.enqueue(20);
            circularQueue.enqueue(21);
            circularQueue.enqueue(22);
    
            System.out.println("Full Circular Queue" + circularQueue);
    
            System.out.print("Dequeued following element from circular Queue ");
            System.out.println(circularQueue.dequeue() + " ");
            circularQueue.enqueue(23);
            System.out.println("After enqueueing circular queue with element having value 23");
            System.out.println(circularQueue);
        }
    
    }
    
    //implementation of Circular Queue using Generics
    class CircularQueue<E> {
    
        private int currentSize; //Current Circular Queue Size
        private E[] circularQueueElements;
        private int maxSize; //Circular Queue maximum size
    
        private int rear;//rear position of Circular queue(new element enqueued at rear).
        private int front; //front position of Circular queue(element will be dequeued from front).      
    
        public CircularQueue(int maxSize) {
            this.maxSize = maxSize;
            circularQueueElements = (E[]) new Object[this.maxSize];
            currentSize = 0;
            front = 0;
            rear = 0;
        }
    
        /**
         * Enqueue elements to rear.
         */
        public void enqueue(E item) throws QueueFullException {
            if (isFull()) {
                throw new QueueFullException("Circular Queue is full. Element cannot be added");
            }
            else {
                circularQueueElements[rear] = item;
                rear = (rear + 1) % circularQueueElements.length;
                currentSize++;
            }
        }
    
        /**
         * Dequeue element from Front.
         */
        public E dequeue() throws QueueEmptyException {
            E deQueuedElement;
            if (isEmpty()) {
                throw new QueueEmptyException("Circular Queue is empty. Element cannot be retrieved");
            }
            else {
                deQueuedElement = circularQueueElements[front];
                circularQueueElements[front] = null;
                front = (front + 1) % circularQueueElements.length;
                currentSize--;
            }
            return deQueuedElement;
        }
    

      

  • 相关阅读:
    第十七天——类与类之间的关系(一)
    Eclipse替代keil
    ssm_crud 测试mapper生成结果
    ssm_crud mybatis-generator逆向生成
    ssm_crud 搭建项目
    ssm_crud 目录篇
    mybatis SQL语句 打印
    Caused by: java.lang.ClassNotFoundException: javax.servlet.SessionCookieConfig
    Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be ope
    Spring Security开发安全的REST服务 下载
  • 原文地址:https://www.cnblogs.com/apanda009/p/7927447.html
Copyright © 2020-2023  润新知