/* 3. ´ÙÀ½ ÇÁ·Î±×·¥ÀÇ Ãâ·ÂÀ» ½á¶ó. */ #include int number[5] = { 1, 2, 3, 4, 5 }; // ¿©±â¸¦ ¹Ù²Ü °Í class Stack { int *s; int top; int sz; public: Stack() { s = NULL; top = 0; sz = 0; } void push(int p) { if (sz == 0) { s = new int[1]; top = 0; sz = 1; s[0] = p; } else { sz = sz + 2; int *tmp = new int[sz]; for(int i = 0; i < sz - 2; i++) tmp[i] = s[i]; tmp[top+1] = p; tmp[top+2] = p; top = top + 2; s = tmp; } } void pop() { s[top] = 0; s[top-1] = 0; } void print() { for(int i = 0; i <= top; i++) printf("%d ",s[i]); printf("\n"); } }; void main() { Stack test; test.push(number[0]); test.push(number[1]); test.push(number[2]); test.pop(); test.push(number[3]); test.push(number[4]); test.print(); }