양 끝에서 각각 입력과 출력을 담당하는 자료구조입니다.
자료의 입력과 삭제가 각기 다른 정해진 곳에서 일어나기 때문에 순차적으로 진행 됩니다.
즉,
선입선출(FIFO: First In Fisrt Out)의 현태를 가집니다.
'A', 'B', 'C', 'D','E'를 차례로 입력한 다음 'F'를 입력할 때의 모습입니다.
설명의 편의를 위해,
출력이 일어나는 끝을 '앞', 입력이 일어나는 끝을 '뒤'라고 가정하겠습니다.
지난 업로드(stack)에서는 top을 사용했습니다.
큐에서는 top대신 front라는 연산이 있습니다.
top과 마찬가지로 pop를 실행했을 시에 사라질 자료를 출력합니다.
하지만 stack과는 다르게 가장 먼저 입력된 자료를 출력하게 됩니다.
큐의 pop은 가장 먼저 입력된 자료를 삭제합니다.
위의 설명은 pop을 진행한 후 'A'가 삭제된 뒤의 상황입니다.
입력을 할 때에 사용하는 연산자입니다.
앞서 설명들렸듯 입력은 '뒤'에서 발생합니다.
다음의 예시는 push('F')가 일어난 뒤의 상황입니다.
stack에서의 설명과 동일합니다.
큐 안에 들어가있는 자료가 존재하지 않은체로 front나 pop일 실행되면 오류를 유발할 수 있기 때문에
이를 방지하기 위해 큐가 비어있는지 아닌지를 검사합니다.