c언어로 자료구조 중 큐(que)를 구현 해 보았 던거네요..
큐(que)는 먼저 들어온 값이 먼저 나가는 구조입니다.
이런것을 FIFO방식이라고 하며, First In First Out의 약자이지요..
1번 메뉴를 선택하면 값을 입력하라고 하며, 원하는 값을 넣으시면 다시 메뉴가 출력
2번 메뉴를 선택하면 큐에서 값을 하나 빼냅니다..이때 가장 먼저 들어간 값이 나오게 됩니다.
#include <stdio.h>
#define SIZE 5
int rear=-1;
int front=-1;
int q[SIZE];
void input(int data)
{
if(rear == SIZE-1) printf("가득찬 큐입니다.\n");
else{
rear++;
q[rear] = data;
}
}
void output()
{
int i;
if(front == rear) printf("빈 큐입니다.\n");
else{
front++;
printf("반환 된 값은 ? %d 입니다.\n",q[front]);
for(i=front;i<rear+1;i++)
{
q[i]=q[1+i];
}
front--;
rear--;
}
}
void dis()
{
int i;
for(i=0;i<SIZE;i++)
{
printf("%d\t",q[i]);
}
printf("\n\n");
}
void main()
{
int data;
int menu=0;
while(menu<=3){
printf("메뉴 선택 1. 인풋 2. 아웃풋 3. 종료\n");
scanf("%d", &menu);
switch(menu)
{
case 1:
printf("값을 입력하세요\t");
scanf("%d",&data);
input(data);
break;
case 2:
output();
break;
case 3:
menu=5;
break;
default:
printf("잘못된 메뉴 입력");
scanf("%d", &menu);
break;
}
dis();
}
}
'IT > Programing' 카테고리의 다른 글
c언어 스택 구현(자료구조) (1) | 2013.12.11 |
---|---|
c언어 버블정렬(버블소트) (0) | 2013.12.05 |
c언어 소스파일 나누기 (0) | 2013.11.29 |