프로그래머의 삶 Programmer's Life/C & C++

단순 큐 의 예

Oliver's World 2008. 11. 5. 11:14
728x90

#include<stdio.h>
#define MAX 10
int que[MAX];
int front=0,rear=0;
int push(int);
int pop(void);
int clearque(void);

void main()
{
 int num,a,c;
 printf("데이터를 저장하려면  i 입력\n");
 printf(" 가장먼저 입력한 데이터를 축출하려면 o입력 \n");
 printf(" 프로그램 종료를 하려면 스페이스입력 \n");
 printf("저장한 데이터를 초기화하려면 c를 입력하시오.\n");
 clearque();
 while( (c=getchar()) != ' ')
 {
  if(c == 'i')
  {
   printf("저장할 데이터를 입력하시오.\n");
   scanf("%d",&num);
   push(num);
  }
  if(c == 'o')
  {
   a=pop();
   if(a!= -1)
   printf("저장된 데이터중 가장 먼저 입력된 데이터는 %d 입니다.\n",a);
  }
  if(c == 'c')
  {
   clearque();
  }
 }
}

int clearque()
{
 front=rear;
 return 0;
}

int push(int a)
{
 if((rear+1)%MAX == front)
 {
  printf("저장할 공간이 없습니다.");
  return -1;
 }
 else
  que[++rear]=a;
 return 0;
}

int pop()
{
 if(rear%MAX ==front)
 {
  printf("저장된 데이터가 없습니다.");
  return -1;
 }
 else
  return que[++front];
}


 

728x90