본문 바로가기

기술면접/정리하기

큐 (Queue)

: 들어온 순서대로 넣어서 순서대로

사용한다.

스택(Stack)의 경우 넣은 순서대로 사용을 할 수 없기에, 넣었던 순서대로 자료를 사용하고 싶다면 큐(Queue)를 이용한다.
이처럼 먼저 들어간 들어간 원소가 가장 먼저 꺼내지기 때문에 FIFO(First In First Out) : 선입선출 이라고 불린다.

프로세스 처리, CPU 관리에서 많이 사용된다.

 

<큐(Queue)의 문제점>

[1][2][3][4][5]           [1]을 Pop           [pop][2][3][4][5]

일반적으로 배열을 직선 형태로 보았을 때, [1] 데이터를 Pop하면 다른 데이터를 차례대로 당겨줘야 한다.

이것은 소수의 자료의 경우는 상관이 없지만 많은 데이터의 경우 연산에 많은 시간이 걸린다.

 

이러한 문제를 해결하기 위해 원형 큐, 순환 큐, 환영 큐 라는 방법이 있다.

배열을 직선으로 보는 것이 아닌 원형으로 보는 방법이다.

 

<큐(Queue)에서 사용하는 변수>

1. Front : 처음이며, 자료가 나갈 경우(Pop) 이부분의 변수가 나가고 --. (-1이라면 자료의 끝으로 간다.)

2. Rear(Tail) : 꼬이며, 입력 될 경우 이부분이 입력되고 ++. (자료의 끝이라면 0이라고 하면된다.)