
[자료구조 및 프로그래밍] 3. Queue (Circular Queue) - 2
지난 포스팅에서는 배열을 이용한 큐를 구현해보았다. front, back 변수를 모두 0으로 초기화 하였을 때, push: back 변수가 가리키는 인덱스에 데이터 추가, back >= size 이면 오버플로우 pop: front 변수가 가리키는 인덱스의 데이터를 제거, front >= back 이면 언더플로우 와 같이 구현할 수 있었다. 그러나 이렇게 구현하면 push 를 최대 N번, pop은 push 횟수 이하로만 할 수 있다는 문제가 있었다. 이번에는 Size N 이라는 메모리 공간에 중간중간 여유가 생긴다면 그 여유공간까지 활용하여 push 를 더 많이 할 수 있도록 기존의 큐를 개선하여 보겠다. 그림과 같이 사이즈 5인 큐에 모든 값이 다 들어있는 상황을 생각해보자. 현재 front 는 2이고,..