[자료구조]큐(Queue)[7-1]

서희찬·2021년 4월 4일
0
post-thumbnail

큐(Queue)란 ?

  • 먼저 들어간 데이터가 나중에 나오는 구조인 스택과는 다르게 큐는 먼저 들어간 데이터가 먼저 나오는 구조이다.
    이것이 스택과 큐의 유일한 차이 !!

큐의 이해

  • 스택이 초코볼통과 쟁반으로 설명된다면, 큐는 줄서기로 비유 할 수 있다 !
    우리는 줄 설때 먼저 온 사람이 먼저 서비스를 받는다!
    이것이 큐의 구조이다 !
    큐는 선입선출 구조의 자료구조임을 알 수 있다 !

큐의 ADT정의

enqueue : 큐에 데이터를 넣는 연산
dequeue : 큐에서 데이터를 꺼내는 연산
(stack 에서는 이와 다르게 push/pop이라고 하였다.)

Operation :
void QueueInit(Queue*pq);
	-큐의 초기화 진행
    	-큐 생성 후 제일 먼저 호출되어야하는 함수
            
int QISEmpthy(Queue*pq);
- 큐가 빈 경우 Ture, 그렇지 않은 경우 False(0)를 반환한다.

void Enqueue(Queue*pq, Data data);
- 큐에 데이터를 저장한다. 매개변수 data로 전달된 값을 저장한다.

Data Dequeue(Queue * pq);
- 저장순서가 가장 앞선 데이터를 삭제한다.
- 삭제된 데이터는 반환된다.
- 본 함수의 호출을 위해서는 데이터가 하나 이상 존재함이 보장되어야한다(그래야지 삭제도 가능하니깐 !! )

Data QPeek(Queue * pq);
- 저장순서가 가장 앞선 데이터를 반환하되 삭제하지 않는다. 
- 본 함수의 호출을 위해서는 데이터가 하나 이상 존재함이 보장 !! 

ADT에서 이름충돌을 막기위해 IsEmpty, Peek 함수 앞에 Q를 붙여줬다.

Queue역시 배열기반과 연결리스트 기반으로 구현 가능하다 !

profile
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)

0개의 댓글