#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STACK_SIZE 100
typedef char element; // 교체!
// 차후에 스택이 필요하면 여기만 복사하여 붙인다.
// ===== 스택 코드의 시작 =====
#define MAX_STACK_SIZE 100
typedef struct {
element data[MAX_STACK_SIZE];
int top;
} StackType;
// 스택 초기화 함수
void init_stack(StackType *s)
{
s->top = -1;
}
// 공백 상태 검출 함수
int is_empty(StackType *s)
{
return (s->top == -1);
}
// 포화 상태 검출 함수
int is_full(StackType *s)
{
return (s->top == (MAX_STACK_SIZE - 1));
}
// 삽입함수
void push(StackType *s, element item)
{
if (is_full(s)) {
return;
}
else s->data[++(s->top)] = item;
}
// 삭제함수
element pop(StackType *s)
{
if (is_empty(s)) {
}
else return s->data[(s->top)--];
}
// 피크함수
element peek(StackType *s)
{
if (is_empty(s)) {
}
else return s->data[s->top];
}
// ===== 스택 코드의 끝 =====
void que(StackType *s1, StackType *s2)
{
int i,n;
n = s1->top;
for (i = n; i > -1; i--)
{
push(s2, pop(s1));
}
}
int Out(StackType *s1,StackType *s2)
{
int num;
if (is_empty(s2))
{
que(s1, s2);
num = pop(s2);
return num;
}
else
{
num = pop(s2);
return num;
}
}
int main(void)
{
StackType s1, s2;
init_stack(&s1);
init_stack(&s2);
push(&s1, 10);
push(&s1, 20);
push(&s1, 3);
//getchar();
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHN0cmluZy5oPgojZGVmaW5lIE1BWF9TVEFDS19TSVpFIDEwMAoKdHlwZWRlZiBjaGFyIGVsZW1lbnQ7CQkvLyDqtZDssrQhCgkJCQkJCQkvLyDssKjtm4Tsl5Ag7Iqk7YOd7J20IO2VhOyalO2VmOuptCDsl6zquLDrp4wg67O17IKs7ZWY7JesIOu2meyduOuLpC4gCgkJCQkJCQkvLyA9PT09PSDsiqTtg50g7L2U65Oc7J2YIOyLnOyekSA9PT09PSAKI2RlZmluZSBNQVhfU1RBQ0tfU0laRSAxMDAKCgp0eXBlZGVmIHN0cnVjdCB7CgllbGVtZW50IGRhdGFbTUFYX1NUQUNLX1NJWkVdOwoJaW50IHRvcDsKfSBTdGFja1R5cGU7CgovLyDsiqTtg50g7LSI6riw7ZmUIO2VqOyImAp2b2lkIGluaXRfc3RhY2soU3RhY2tUeXBlICpzKQp7CglzLT50b3AgPSAtMTsKfQoKLy8g6rO167CxIOyDge2DnCDqsoDstpwg7ZWo7IiYCmludCBpc19lbXB0eShTdGFja1R5cGUgKnMpCnsKCXJldHVybiAocy0+dG9wID09IC0xKTsKfQovLyDtj6ztmZQg7IOB7YOcIOqygOy2nCDtlajsiJgKaW50IGlzX2Z1bGwoU3RhY2tUeXBlICpzKQp7CglyZXR1cm4gKHMtPnRvcCA9PSAoTUFYX1NUQUNLX1NJWkUgLSAxKSk7Cn0KLy8g7IK97J6F7ZWo7IiYCnZvaWQgcHVzaChTdGFja1R5cGUgKnMsIGVsZW1lbnQgaXRlbSkKewoJaWYgKGlzX2Z1bGwocykpIHsKCQlmcHJpbnRmKHN0ZGVyciwgIuyKpO2DnSDtj6ztmZQg7JeQ65+sXG4iKTsKCQlyZXR1cm47Cgl9CgllbHNlIHMtPmRhdGFbKysocy0+dG9wKV0gPSBpdGVtOwp9Ci8vIOyCreygnO2VqOyImAplbGVtZW50IHBvcChTdGFja1R5cGUgKnMpCnsKCWlmIChpc19lbXB0eShzKSkgewoJCWZwcmludGYoc3RkZXJyLCAi7Iqk7YOdIOqzteuwsSDsl5Drn6xcbiIpOwoJCWV4aXQoMSk7Cgl9CgllbHNlIHJldHVybiBzLT5kYXRhWyhzLT50b3ApLS1dOwp9Ci8vIO2UvO2BrO2VqOyImAplbGVtZW50IHBlZWsoU3RhY2tUeXBlICpzKQp7CglpZiAoaXNfZW1wdHkocykpIHsKCQlmcHJpbnRmKHN0ZGVyciwgIuyKpO2DnSDqs7XrsLEg7JeQ65+sXG4iKTsKCQlleGl0KDEpOwoJfQoJZWxzZSByZXR1cm4gcy0+ZGF0YVtzLT50b3BdOwp9Ci8vID09PT09IOyKpO2DnSDsvZTrk5zsnZgg64GdID09PT09IAp2b2lkIHF1ZShTdGFja1R5cGUgKnMxLCBTdGFja1R5cGUgKnMyKQp7CglpbnQgaSxuOwoJbiA9IHMxLT50b3A7Cglmb3IgKGkgPSBuOyBpID4gLTE7IGktLSkKCXsKCQlwdXNoKHMyLCBwb3AoczEpKTsKCX0KfQoKaW50IE91dChTdGFja1R5cGUgKnMxLFN0YWNrVHlwZSAqczIpCnsKCWludCBudW07CglpZiAoaXNfZW1wdHkoczIpKQoJewoJCXF1ZShzMSwgczIpOwoJCW51bSA9IHBvcChzMik7CgkJcmV0dXJuIG51bTsKCX0KCWVsc2UKCXsKCQludW0gPSBwb3AoczIpOwoJCXJldHVybiBudW07Cgl9Cn0KCmludCBtYWluKHZvaWQpCnsKCVN0YWNrVHlwZSBzMSwgczI7CgoJaW5pdF9zdGFjaygmczEpOwoJaW5pdF9zdGFjaygmczIpOwoKCglwdXNoKCZzMSwgMTApOwoJcHVzaCgmczEsIDIwKTsKCXB1c2goJnMxLCAzKTsKCglwcmludGYoIiVkIiwgT3V0KCZzMSwmczIpKTsKCXByaW50ZigiJWQiLCBPdXQoJnMxLCZzMikpOwoJcHJpbnRmKCIlZCIsIE91dCgmczEsJnMyKSk7CgkKCS8vZ2V0Y2hhcigpOwp9