아래 소스코드는 2013년 10월에
인천지역 한국방송통신대학교 컴퓨터과학과 2학년 과대표님께서 작성하신 소스코드입니다.
유용하여 자료를 퍼옵니다. 아래는 출처입니다.
출처 : http://cafe.daum.net/ICCS/LcpH/15 (가입이 이루어져야 하고, 우등회원 이상만 볼 수 있습니다.)
-------------------------------------------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>
#define Q_SIZE 3
typedef int element; // 문자형, 숫자형 자료형이 큐에 여러가지 들어갈수 있기 때문 속성지정.
element queue[Q_SIZE];
int count; //원형큐는 Q_SIZE 가 3이기 때문에 삽입시는 ++, 삭제시는 -- 하기위한 변수
//원형큐에 삽입하는 함수
void enqueue(int front, int *rear, element item){
*rear = (*rear+1) % Q_SIZE;
if(front == *rear){
printf("Queue is Fulll\n");
return ;
}
count++;
queue[*rear]=item;
}
//원형큐에 들어 있는 자료 삭제하는 함수
element dequeue(int *front, int rear){
if(*front == rear){
printf("Queue is empty\n");
exit(1);
}
else{
count--;
*front = (*front+1) % Q_SIZE;
return queue[*front];
}
}
int main()
{
int rear=0, front=0,i,j; // 인덱스가 fornt 와 rear 필요
element data;
printf(" 1. add\n 2. delete\n 3. exit\n input : ");
scanf("%d",&i);
while(1){
if(i==1){
printf("Input Number : ");
scanf("%d",&data);
enqueue(front, &rear, data);
printf("\nfront값 = %d rear값 = %d",front,rear);
} else if(i==2){
dequeue(&front,rear);
printf("\nfront값 = %d rear값 = %d",front,rear);
} else if(i==3){
for(j=1; j<=count ;j++)
{
//원형큐에 담아 있는 자료 출력
printf("%d \n",queue[(front+j)%Q_SIZE]);
}
break;
}
printf("\n 1. add\n 2. delete\n 3. exit\n input : ");
scanf("%d",&i);
}
return 0;
}
'기타' 카테고리의 다른 글
C언어로 구현한 삽입정렬 (0) | 2013.10.24 |
---|---|
C언어로 구현한 선택정렬 (0) | 2013.10.24 |
C언어로 구현한 버블정렬 (0) | 2013.10.24 |
C언어로 구현한 단순연결리스트 (0) | 2013.10.21 |
다음 지도 API 사용하기 (지도연동) (0) | 2013.09.09 |