[C언어 소스] 원형 큐, 버퍼를 동적으로 생성

안녕하세요. 언제나 휴일이예요.

이번에는 버퍼를 동적으로 생성하는 원형 큐를 살펴보아요.

큐는 자료를 한쪽으로 보관하고 다른쪽에서 꺼내는 FIFO(First In First Out) 방식의 자료구조입니다. 큐에 자료를 보관하는 연산을 PUT 혹은 ENQUEUE라 말하고 꺼내는 연산을 GET 혹은 DEQUEUE라고 말합니다. 그리고 보관할 위치 정보를 rear, 꺼낼 위치 정보를 front라고 말해요.

원형 큐에서는 rear와 front를 다음 위치로 이동할 때 index = (index+1)%QSIZE 로 이동합니다.

알고리즘

PUT 연산
IF Queue Is full (차면)
    Overflow (버퍼오버플로우)
Else (차지않을)

    Buffer[rear] = data (버퍼의 rear 위치에 data 보관)
    rear=NEXT(rear) (rear 위치이동)

GET 연산
IF Queue is empty Then (비었으면)
    Underflow (버퍼언더플로우)
Else
    data = Buffer[front] (버퍼의 front 위치의값을데이터에설정)
    fornt = NEXT(front)  (rear 위치이동)

원형 큐 실행 화면
원형 큐 실행 화면

소스 코드