2013년 8월 5일 월요일

자바 원형큐예제-Circular Queue Example

참고하세요~~~

오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의) 



public class ArrayQueue implements Queue
     {
           // data members
          int front;          // one counterclockwise from first element
          int rear;           // position of rear element of queue
          Object [] queue;    // element array
         
          public ArrayQueue(int initialCapacity)
         {
               if (initialCapacity < 1)
                    throw new IllegalArgumentException
                      ("initialCapacity must be >= 1");
               queue = new Object [initialCapacity + 1];
               // default front = rear = 0
         }   

 
       public boolean isEmpty() {
      return front == rear;
       }
      
       public Object getFrontElement() {
           if (isEmpty())  return null;
           else return queue[(front + 1) % queue.length];
      }
     
      public Object getRearElement() {
          if (isEmpty())  return null;
          else return queue[rear];
     }
 
   
     public void put(Object theElement)  {
          // increase array length if necessary
          if ((rear + 1) % queue.length == front) {
            // double array size
            // code to double array size comes here
         }
         // put theElement at the rear of the queue
         rear = (rear + 1) % queue.length;
         queue[rear] = theElement;
     }   
 


      public Object remove()  {
           if (isEmpty())
               return null;
           front = (front + 1) % queue.length;
          Object frontElement = queue[front];
          queue[front] = null;  // enable garbage collection
          return frontElement;
      }
 

댓글 없음:

댓글 쓰기