Queue 란? FIFO(First In First Out) 형식을 가진 자료구조 형태입니다!
간단하게 소스한번 볼까요~?
#include <stdio.h>
int ary[5]={0,};
int rear=-1;
int front=-1;
void init_Queue();
void InQueue();
void DeQueue();
void Print_Queue();
void All_Clear();
int main(void)
{
int i;
init_Queue();
printf("Queue에 데이터를 입력합니다.\n");
//0~4까지 입력
for(i=0; i<4; i++)
{
InQueue();
}
Print_Queue();
printf("Queue에 데이터를 입력합니다.\n");
//5까지 입력, 오버플로우 확인
for(i=0; i<2; i++)
{
InQueue();
}
Print_Queue();
//0~4까지 삭제
printf("Queue에 데이터를 삭제합니다.\n");
for(i=0; i<4; i++)
{
DeQueue();
}
Print_Queue();
//5까지 삭제, 언더플로우 확인
printf("Queue에 데이터를 삭제합니다.\n");
for(i=0; i<2; i++)
{
DeQueue();
}
Print_Queue();
//스택 비움
printf("Queue를 비웁니다..\n");
All_Clear();
Print_Queue();
return 0;
}
void init_Queue()
{
rear=-1;
front=-1;
}
void InQueue()
{
int num;
rear+=1;
if(rear>=5)
{
printf("Overflow!\n");
}
else
{
printf("Input : ");
scanf("%d",&num);
ary[rear]=num;
}
}
void DeQueue()
{
front+=1;
if(front==rear)
{
printf("underflow!\n");
All_Clear();
}
else{
ary[front]=0;
}
}
void Print_Queue()
{
int i;
for(i=0; i<5; i++)
{
printf("Queue Data : %3d\n",ary[i]);
}
printf("\n");
}
void All_Clear()
{
int i;
for(i=0; i<5; i++)
{
ary[i]=0;
}
init_Queue();
엄청나게 지저분한걸 보면 딱 제가 짠 소스라는걸 알수있습니다..
필요하다면 메인 부분만 수정해서 쓰시면 될 것 같네요.
'진주의 배설물 > 알고리즘 소스' 카테고리의 다른 글
[알고리즘] 2월 첫째주 알고리즘 - 3n+1 (0) | 2012.02.03 |
---|---|
[C언어] 2차원 배열 - 달팽이 알고리즘 - (0) | 2012.02.03 |