본문 바로가기

카테고리 없음

Queue

Queue의 자료구조

Queue는 다음과 같은 성질을 갖는 자료형구조 이다.

    1. 데이터를 집어넣을 수 있는 선형 자료형이다.

    2.먼저 집어넣은 데이터가 먼저 나온다.FIFO(First In First Out)

    3.데이터를 집어넣는 enqueue, 데이터를 추출하는 dequeue 등의 작업이 있다

Queue 는 흔히 말하는 선입 선출을 얘기하는 것이다. 프로그래밍을 도전하기전 영화관 아르바이트를 했었는데 거기서 선입 선출에 대해 정말 지겹도록 들었었다.. 먼저 들어온것이 먼저 나가고 후에 들어온게 가장 늦게 나가는 것. 그게 선입선출이다.

말을 잘 못해 이해가 안갈수도 있다.. 그림을 통해 알아보자.


queue의 property

  1. front: 가장 먼저 들어간 맨 앞의 값
  2. rear: 새로운 데이터가 들어갈 인덱스 
  3. storage: queue가 가지고 있는 데이터들의 모음

Queue의 Methode

Method 실행 결과 값
enqueue() 값의 큐의 rear에 추가한다 -
dequeue() 값을 큐의 front에서 제거한다. top의 값
peek() front에 위치하는 값을 확인한다 top의 값
size() 큐의 길이를 확인한다 Queue의 길이
isEmpty() 큐가 비어있는지 확인한다 boolean

psedoCode

 

 

isEmpty

  1. Queue가 비어있는지 확인
  2. 비어있으면 flase
  3. 값이 있으면 true
if(arr.size > 0){

  return true;}

else{

  reuturn false}

 

size()

  1. 큐가 비어있지 않다면
  2. length로 길이 리턴
size()

return arr.length;

enqueue()

  1. Queue의 크기가 최대 크기보다 크거나 같은지 확인
  2. 만약 크다면 Queue Overflow 반환
  3. 작다면 rear 인덱스에 추가
  4. rear 값을 1 증가
function push (){

arr.push()

}

 

dequeue()

  1. Queue가 비어있는지 확인한다.
  2. queue가 비어있다면 Queue underflow 반환
  3. 값이 들어있다면 변수 front에 처음 들어간 값 제거
function shipt(){
  if(arr.length > 0){
    arr.shipt
  }
}

peak()  

  1. 큐가 공백인지 확인
  2. 비어있다면 false
  3. 공백이 아니라면 front출력
function peak (){
  if(isEmpty){
    return arr[0]
    }else{
      return undefind
     } 
  }
}