💡큐의 특징💡

  • 맨 앞(front) 에서 자료를 꺼내거나 삭제하고, 맨 뒤(rear)에서 자료를 추가 함
  • Fist In First Out (선입선출) 구조
  • 일상 생활에서 일렬로 줄 서 있는 모양
  • 순차적으로 입력된 자료를 순서대로 처리하는데 많이 사용 되는 자료구조
  • 콜센터에 들어온 문의 전화, 메세지 큐 등에 활용됨
  • jdk 클래스 : ArrayList

큐의 메서드

  • boolean add(Object o) - 객체 추가, 공간 부족하면 IllegalStateException
  • Object remove() - 객체를 꺼내 반환 비어있으면 NoSuchElementException, try-catch로 처리
  • Object element()
  • boolean offer(Object o) - 객체 추가, 성공하면 true, 실패하면 false
  • Object poll() - 객체를 꺼내 반환 비어있으면 null, if(obj == null)로 처리
  • Object peek()

요소를 넣고자 하는 경우

  • 비어있는 경우 front와 rear 새 요소로 지정
MyListNode newNode;
if (isEmpty()){
    newNode = addElement(data);
    front = newNode;
    rear = newNode;
  • 비어있지 않은 경우 addElement하고 rear를 새 요소로 지정
 }else {
     newNode = addElement(data);
     rear = newNode;
 }

요소를 삭제하고자 하는 경우

  • 비어있는 경우 null, 아닌 경우 data에 front의 요소를 저장한 후 front를 front의 next로 저장,
    만약 삭제 후 큐가 빈 큐가 될 경우 앞에서 front가 null이 되었고 rear도 null로 바꿔준다
         if (isEmpty()){
            return null;
        }
        String data = front.getData();
        front = front.next;
        if (front == null){
            rear = null;
        }
        return data;
    }

    큐의 활용

  • 최근 사용 문서
  • 인쇄작업 대기 목록
  • 버퍼
profile
안녕하세요. Chat JooPT입니다.

0개의 댓글