#include <stdio.h>
#include <stdlib.h>
#define SIZE 8
typedef struct _q {
int queue[SIZE];
int front;
int rear;
} queue;
queue q;
int isfull() {
return (q.rear+1)%SIZE==q.front;
}
int isempty() {
return (q.rear==q.front);
}
void put(int x) {
if(isfull()) {
printf("큐가 가득찼습니다.");
exit(1);
}
q.queue[q.rear]=x;
q.rear=(q.rear+1)%SIZE;
}
int get() {
int temp;
if(isempty()) {
printf("큐가 비었습니다.");
exit(1);
}
temp=q.queue[q.front];
q.front=(q.front+1)%SIZE;
return temp;
}
int main() {
int num, choice;
q.front=q.rear=0;
while(1) {// 무한 루프를 돕니다.
// 메뉴를 프린트해줍니다.
printf("1.데이터삽입, 2.데이터삭제, 3.종료: ");
scanf("%d", &choice); // 어떤 기능을 선택할 지를 입력받습니다.
// 만약 1.데이터삽입를 선택하였다면
if(choice==1) {
printf("정수 입력 : ");
scanf("%d", &num); // 정수를 입력받아서
put(num); // num를 큐에 넣습니다.
}
// 만약 2.데이터삭제를 선택하였다면
else if(choice==2) {
num=get(); // 큐에 있는 원소를 num로 반환받아서
printf("get: %d\n", num); // num값을 출력해 줍니다.
}
// 만약 3.종료를 선택했다면
else if(choice==3)
break; // while문을 빠져나갑니다.
} // 여기가 while문의 끝입니다.
return 0;
}
===============================================
#include <stdio.h>
#include <stdlib.h>
#define SIZE 100
int queue[SIZE]={0,};
int front=0, rear=0;
int Q_Empty() {
return front==rear;
}
int Q_Full() {
return (rear+1)%SIZE==front;
}
void Q_Insert(int x) {
if(Q_Full()) {
printf("큐가 가득찼습니다.");
exit(1);
}
queue[rear]=x;
rear=(rear+1)%SIZE;
}
int Q_Delete() {
int temp;
if(Q_Empty()) {
printf("큐가 비었습니다.");
exit(1);
}
temp=queue[front];
front=(front+1)%SIZE;
return temp;
}
int main() {
int num, choice;
while(1) {// 무한 루프를 돕니다.
// 메뉴를 프린트해줍니다.
printf("1.데이터삽입, 2.데이터삭제, 3.종료: ");
scanf("%d", &choice); // 어떤 기능을 선택할 지를 입력받습니다.
// 만약 1.데이터삽입를 선택하였다면
if(choice==1) {
printf("정수 입력 : ");
scanf("%d", &num); // 정수를 입력받아서
Q_Insert(num); // num를 큐에 넣습니다.
}
// 만약 2.데이터삭제를 선택하였다면
else if(choice==2) {
num=Q_Delete(); // 큐에 있는 원소를 num로 반환받아서
printf("Q_Delete: %d\n", num); // num값을 출력해 줍니다.
}
// 만약 3.종료를 선택했다면
else if(choice==3)
break; // while문을 빠져나갑니다.
} // 여기가 while문의 끝입니다.
return 0;
}