
void push(int item) { //전역 stack에 item을 삽입
if(top >= MAX-1)
stackFull();
stack[++top] = item;
}
int pop() { //stack의 최상위 원소를 삭제하고 반환
if(top == -1)
stackEmpty();
return stack[top--];
}

한쪽 끝에서 push가 일어나고 그 반대쪽 끝에서 pop이 일어나는 순서리스트
- 선입선출(First-In-First-Out)

void addq(int queue[], int item) { //삽입
if(rear == MAX-1) //꽉찼으면
queueFull();
queue[++rear] = item;
}int is_full(int queue[]) {
if(rear == MAX-1) return 1;
else return 0;
}int deleteq(int queue[]) {
if(front == rear) //비었으면
queueEmpty();
return queue[++front];
}int is_empty(int queue[]) {
if(front == rear) return 1;
else return 0;
}큐가 배열의 끝을 둘러싸게 함


void addq(int queue[], int item) { //삽입
rear = (rear+1) % MAX;
if(rear == front)
queueFull();
queue[rear] = item;
}
int deleteq(int queue[]) { //삭제
if(front == rear) //비었으면
queueEmpty();
front = (front+1) % MAX;
return queue[front];
}