자료구조...제발 도움 부탁드려요ㅠㅠ
누리별
큐를 이용해서 멀 하나 만드려고 하는데요..
먼저 물품을 입력해요 라면, 김밥, 만두 이런 식으로(문자입력)
그래서 큐의 선입선출 구조로 앞에서부터 하나씩 삭제되는 식으로...
일단 먼저 입력부분의 enQueue를 해야하는데..잘 안됩니다 ㅠㅠ
큐의 삽입 부분만 해봤는데..혹시 뭐가 잘못되었나 봐주실 분을 찾아
요...
#includestdio.h
#includestdlib.h
#includestring.h
typedef char element2; //char형을 연결 큐 element의 자
료형으로 정의
typedef struct{
// 1차원 배열 큐 선언
element2 queue[Q_SIZE];
int front, rear;
} QueueType;
QueueType *createQueue() //공백 큐를 생성하는 연산
{
QueueType *Q;
Q = (QueueType *)malloc(sizeof(QueueType));
Q-front=-1; //front 초깃값 설정
Q-rear=-1; //rear 초깃값 설정
return Q;
}
//큐가 공백인지 확인하는 연산
int isEmpty(QueueType *Q)
{
if (Q-front == Q-rear) {
printf(n Queue is empty! n);
return 1;
}
else return 0;
}
int isFull(QueueType *Q) //큐가 포화상태인지 확인하는 연
산
{
if (Q-rear == Q_SIZE-1) {
printf(n Queue is full! n);
return 1;
}
else return 0;
}
void enQueue(QueueType *Q, element2 item) //큐의 rear
에 원소를 삽입하는 연산
{
if(isFull(Q)) exit(1);
else {
Q-rear++;
Q-queue[Q-rear] = item;
}
}
//큐의 내용을 출력하는 연산
void printQ(QueueType *Q)
{
int i;
printf( Queue : [);
for(i=Q-front+1; i=Q-rear; i++)
printf(%3c,Q-queue[i]);
printf( ] n);
}
void menu_entry() //메뉴 등록
{
int item;
int menu;
int p;
QueueType *Q1 = createQueue();
printf(물품명을 입력하세요 );
scanf(%s,&menu);
enQueue(Q1, menu);
printQ(Q1);
}
int main(void)
{
int menu_num;
element item;
top = NULL;
while(1)
{
printf(|---------------------------------------|n);
printf(| 메뉴를 선택하세요 |n);
printf(|---------------------------------------|n);
printf(| 1. 주문 |n);
printf(| 2. 오늘의 총 매출액 확인 |n);
printf(| 3. 물품 사용 순서 |n);
printf(| 4. 종료 |n);
printf(|---------------------------------------|nn);
printf(선택하실 메뉴의 번호를 입력하세요: );
scanf(%d, &menu_num);
getchar();
switch(menu_num)
{
case 1:
menu_entry();
break;
case 2:
break;
case 3:
break;
case 4:
exit(1);
}
}
return 0;
}