스택 큐 프로그램 질문입니다
찬솔나라
질문 제목 : 스택으로 공간을 구현하여 만드는건 실행이 잘되서 이제 추가로
큐를 사용하여 2개의 공간으로 사용하려고하는데 실행이 안되네요
어디가 잘못된건지 부탁드리겟습니다
#include stdio.h
#define PARK_SIZE 3
typedef struct {
int key;
} element1, element2;
typedef struct{
element2 queue[PARK_SIZE];
int front, rear;
}park2;
void park_full()
{
printf(\n 주차공간이 꽉참\n);
printf( 다른 주차장 가세여\n\n);
}
void push(element1 *park, int *top, element1 item)
{
if(*top = PARK_SIZE-1){
park_full();
return;
}
park[++*top] = item;
}
element1 park_empty()
{
element1 empty;
empty.key = 0;
printf(\n 주차장이 비어있습니다.\n);
return empty;
}
element1 pop(element1 *park, int *top)
{
if(*top == -1 )
return park_empty();
return park[(*top)--];
}
void print_park(element1 *park, int top)
{
int i;
printf(┏━━━━━━━━━[주차장]━━━━━━━━━┓\n);
for(i=0; i= top; i++)
{
printf(┃ 주차장 %d번 자리에 [%d번] 자동차가 주차중,,┃\n, i+1, park[i].key);
}
printf(┗━━━━━━━━━[입출구]━━━━━━━━━┛\n);
printf( [ ] \n);
printf( [ ] \n);
printf(\n);
}
void inQueue(element2 *park2, int *rear, element2 item2)
{
if(*rear = PARK_SIZE-1){
park_full();
return;
}
park2[++*rear] = item2;
}
element2 park2_empty2()
{
element2 empty2;
empty2.key = 0;
printf(\n 주차장이 비어있습니다.\n);
return empty2;
}
element2 deQueue(element2 *park2, int *front)
{
if(*front == -1)
return park2_empty2();
return park2[(*front)];
}void print_park2(element2 *park2, int rear, int front)
{
int i;
printf(┏━━━━━━━━━[주차장]━━━━━━━━━┓\n);
for(i=front+1; i= rear; i++)
{
printf(┃ 주차장 %d번 자리에 [%d번] 자동차가 주차중,,┃\n, i+1, park2[i].key);
}
printf(┗━━━━━━━━━[입출구]━━━━━━━━━┛\n);
printf(\n);
}
void main()
{
element1 park[PARK_SIZE];
element2 park2[PARK_SIZE];
int n, top=-1, front=-1, rear=-1;
int select;
char choice;
element1 item;
element2 item2;
do
{
printf(\n);
printf(┏━━━━━━━━━━━━━┓\n);
printf(┃ 주차관리프로그램 ┃\n);
printf(┣━━━━━━━━━━━━━┫\n);
printf(┃ 1. 차량주차하기 ┃\n);
printf(┃ 2. 차량출고하기 ┃\n);
printf(┃ 3. 현재차량현황 ┃\n);
printf(┃ 0. 프로그램종료 ┃\n);
printf(┗━━━━━━━━━━━━━┛\n);
printf( # 보기를 고르세요! --- );
scanf(%d, &select);
switch(select){
case 1:
{
printf(지상(U), 지하(D)\n);
scanf(%c, &choice);
switch(choice){
case 1:
printf(\n주차할 차량번호: );
scanf(%d, &n);
item.key = n;
push(park, &top, item);
break;
case 2:
printf(\n주차할 차량번호: );
scanf(%d, &n);
item2.key = n;
inQueue(park2, &rear, item2);
break;
}
}
case 2:
{
printf(지상(U), 지하(D)\n);
scanf(%c, &choice);
switch(choice){
case 1:
pop(park, &top);
break;
case 2:
deQueue(park2, &front);
break;
}
}
case 3:
print_park(park, top);
break;
case 0:
printf(\n오늘 영업 끝..\n);
break;
}
}while(select != 0);
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2655416 | 고수님들 도움이 절실합니다. (2) | 세리 | 2024-05-19 |
2655361 | 엔터 입력받을때까지 기다리는 getchar (1) | 큰모음 | 2024-05-19 |
2655328 | 함수에서 포인터 (3) | 모아 | 2024-05-18 |
2655299 | 아이콘바꾸는법..? | 소 | 2024-05-18 |
2655271 | scanf 입력받으면 쭉 실행되는.. (5) | ComeOn | 2024-05-18 |
2655184 | 이 세개 프로그램좀 해결해주실.... 고수님들???? (3) | 말달리자 | 2024-05-17 |
2655129 | 다차원 배열 원소들 주소계산하는거 질문이요~ | 터전 | 2024-05-17 |
2655103 | AVRstudio MoveAxis. MoveLine 함수질문 | 앨버트 | 2024-05-16 |
2655072 | 콘솔창의 위치와 크기를 정하고 싶습니다. | 딥레드 | 2024-05-16 |
2655044 | 자료구조랑 online judge site에 대해서 질문있습니다... (1) | 뽀송뽀송 | 2024-05-16 |
2655016 | 별찍기 문제 중 이해안되는 부분이 있어요... | 도전중 | 2024-05-16 |
2654986 | 입력받은 성적을 배열에 저장하기 (3) | 안녕나야 | 2024-05-15 |
2654959 | ===========-이런거 미리 지정하는법 (1) | 김자영 | 2024-05-15 |
2654930 | 도와주십시요 ㅜㅜ 자료구조 ㅜㅜ | 도널드 | 2024-05-15 |
2654881 | PID 모듈 검색 부분 질문합니다 . | 이름없음 | 2024-05-14 |
2654850 | 조건에 만족하는 다음 수를 찾고 싶습니다. | 초엘 | 2024-05-14 |
2654790 | 두파일간 byte단위 txt파일 복사 中 | 슬찬 | 2024-05-14 |
2654768 | 사전만들기 입니다. | 여우By | 2024-05-13 |
2654716 | c언어 고수님들 답좀적어주세요 급합니다 ㅠㅠ | 한말글 | 2024-05-13 |
2654688 | c언어 ㅠㅠ 너 무 어려 워요 ㅠ 도와주세요!! | 별빛 | 2024-05-13 |