2013년 8월 5일 월요일

(자바 선형 큐예제)Linear Queue Example

참고하세요~


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





import java.io.*;
interface Queue1  {  
           public boolean isEmpty();
        public boolean isFull();
           public Object getFrontElement();
           public Object getRearElement();
           public void put(Object theObject);
           public Object remove();
}

class QueueManager implements Queue {
 final static int MAXQUEUE=100;
 private Object[] queue;
 private int front;
 private int rear;
 public QueueManager() {
  queue = new Object[MAXQUEUE];
  front = 0;
  rear = -1;
 }
    public boolean isEmpty() {
  return front > rear;
 }
 public boolean isFull() {
  return rear == MAXQUEUE-1;
 }
 public void put(Object theObject) {
  if (isFull()) {
   System.out.println("Queue가 꽉 찼습니다...");
   return;
  }
  queue[++rear] = theObject;
 }

    public Object remove() {
  if (isEmpty()) {
   System.out.println("Queue가 공백 입니다...");
   return null;
  }
  Object item = queue[front];
  front++;
  return item;
 }
 public Object getFrontElement() {return queue[front]; }
 public Object getRearElement() {return queue[rear]; }
 public void pointerPrint() {
  System.out.println("F : " + front + " , R: " + rear);
 }
}

public class QueueTest {
 public static void main(String[] args) {
  QueueManager q = new QueueManager();
  q.put(new String("aaaa"));
  q.put(new String("bbbb"));
  q.put(new String("cccc"));
  System.out.println("a,b,c 삽입후...");
  q.pointerPrint();
  q.remove();
  System.out.println("aaaa 삭제후...");
  System.out.println("front : " + q.getFrontElement());
  System.out.println("rear  : " + q.getRearElement());
  q.pointerPrint();
 }
}
 

댓글 없음:

댓글 쓰기