링버퍼

개요 배열을 이용하여 Queue 를 작성할 경우, 큐의 상태를 저장하는 변수의 값(head, tail)이 감소하지 않고 계속 증가하기 때문에 한계치(QUEUESIZE) 에 도달하면 더 이상 올바른 저장소를 가리키지 못하기 때문에 이를 보완할 수 있는 방법이 필요합니다.변수의 값이 최대치에 도달할 경우, 이를 초기값으로 돌려주는 방식으로 원형큐를 사용완가능합니다.※ 참고로 원형큐를 링버퍼라고도 합할 수 있습니다.다음은 이러한 아이디어를 C 언어로 구현한 것입니다. 구현 앞서 작성한 포스트의 배열로 구현한 (선형)큐의 소스코드를 기초로 합니다. // main.c #define QUEUESIZE 256 #include typedef struct { int head, tail; int items[QUEUESIZ..
쓴웃음
'링버퍼' 태그의 글 목록