코드가 오류가 나요....
다미
질문제목 : 우선순위 로 바꾸려고 합니다...
질문요약 : 일단 코드가 오류가 나는데.. ㅠㅠ.
질문내용 : 코드가 오류가 나는데 .. 출력함수를 어떻게 해야 할지... ㅠㅠ
/* 선순위 큐 : 배열; 정렬 */
#includestdio.h
#includemalloc.h
#includestdlib.h
#define MAX_QUEUE_SIZE 100
typedef int element;
typedef struct {
element queue[MAX_QUEUE_SIZE];
int front, rear;
}QueueType;
void error(char *message)
{
fprintf(stderr,%s\n,message);
exit(1);
}
//초기화 함수
void init(QueueType *q)
{
q-front = q-rear = 0;
}
// 공백 검출 함수
int is_empty(QueueType *q)
{
return (q-front == q-rear);
}
//포화 검출 함수
int is_full(QueueType *q)
{
return ((q-rear+1)%MAX_QUEUE_SIZE == q-front);
}
// 삽입 함수
void enqueue(QueueType *q, element item)
{
if(is_full(q)) error(큐가 포화상태입니다.\n);
q-rear = (q-rear +1) % MAX_QUEUE_SIZE;
q-queue[q-rear] = item;
}
// 삭제 함수
element dequeue(QueueType *q)
{
if(is_empty(q)) error(큐가 비었습니다.\n);
q-front = (q-front+1) % MAX_QUEUE_SIZE;
return q-queue[q-front];
}
element peek(QueueType *q)
{
if(is_empty(q)) error(큐가 공백상태임돠~\n);
return q-queue[(q-front+1) % MAX_QUEUE_SIZE];
}
void prologue(){
printf( +-------------+\n);
printf( | 1. 큐 삽입 |\n);
printf( | 2. 큐 삭제 |\n);
printf( | 3. 큐 출력 |\n);
printf( | 5. 종 료 |\n);
printf( +-------------+\n);
}
void print_Q(QueueType *Q)
{
int i;
printf( Queue[%d] = %d\n, i,Q-queue[i]);
}
void main()
{
QueueType q;
//QueueType *hq=&q;
int choise_num=0;
int data;
init(&q);
printf(front = %d rear = %d\n,q.front, q.rear);
prologue();
while(choise_num != 5)
{
printf( 선택하세요 : );
scanf(%d,&choise_num);
switch(choise_num)
{
case 1 :
printf(데이터를 입력하세욤 : );
scanf(%d,&data);
enqueue(&q,data);
break;
case 2 :
printf(dequeue = %c 삭제됨\n, dequeue(&q));
printf(front = %d , rear = %d \n, q.front, q.rear);
break;
case 3 :
print_Q(&q.queue);
break;
case 5 :
choise_num = 5;
printf( 종료중 ...\n);
break;
}
}
}
이렇게 되는데 ... 단락 구분을위해 파일로 올려놀게요...
일단 출력 함수 부분에서 오류가 나는거 같구요....
이 소스를 우선순위 큐를 배열로 정렬로 받고 싶은데 ... ㅜㅜ 어케 하면 좋을까욥..