원형 큐 질문입니다.
보르미
원형 큐에서 큐를 추가시키고 다차면 풀이라고 나오게 했는데여 그다음에 모두 삭제시키고 다시 추가시키니깐
이어서 추가되더라고요 1부터 다시 출력하게끔 displayqueue부분좀 고쳐주세요원형 큐에서 인큐시키면 1 2 3 이런식으로 추가되는데 디큐시킨후 다시 인큐시키면
1부터 다시 추가되는게 아니라 이어서 즉 4부터 추가되는데 1부터 추가되게 좀 고쳐주세요
void displayqueue()
{
int i;
for(i=0; imax; i++) 옆에 부분을 고치면 된다는데 잘모르겠네요
printf(%2d , queue[i]);
printf(\n\n);
}
질문 내용 :
#include stdio.h
#define max 10
void enqueue();
void dequeue();
void displayqueue();
int queue[max];
int front;
int rear;
int data=1;
int main()
{
int in;
while(1)
{
printf(****** menu ****** \n);
printf(1. enqueue \n);
printf(2. dequeue \n);
printf(3. end \n);
printf(input = );
scanf(%d, &in);
switch(in) {
case 1:
enqueue();
break;
case 2:
dequeue();
break;
case 3:
return 0;
default:
break;
}
}
}
void enqueue()
{
if( (front%max) == ((rear+1)%max) )
printf(queue is full \n);
else {
rear = (rear + 1)%max;
queue[rear] = data++;
}
displayqueue();
}
void dequeue()
{
if(front%max == rear%max)
printf(queue is empty \n);
else {
front = (front+1)%max;
queue[front] = 0;
}
displayqueue();
}
void displayqueue()
{
int i;
for(i=0; imax; i++)
printf(%2d , queue[i]);
printf(\n\n);
}
#680e00