#include <stdio.h>
#include <stdlib.h>
int stack[10];
int top;
enum {PUSH = 0, POP, PRINT, EXIT};
void init_stack()
{
top = -1;
}
void push(int nPushVal)
{
if(top >= 9)
printf("Stack OverFlow!! n");
else
stack[++top] = nPushVal;
}
int pop()
{
int nPopVal = 0;
if(top < 0){
printf("Stack is Empty!! n");
return -1;
}
else{
nPopVal = stack[top--];
return nPopVal;
}
}
void printstack()
{
int i;
for(i = 0; i<=top; i++)
printf("%d. %d n", i, stack[i]);
}
void ShowMenu()
{
printf("Select : 0)PUSH 1)POP 2)PRINT 3)EXIT n");
}
main()
{
int nSelectNum = 0;
int nPushVal = 0;
int nPopVal = 0;
init_stack();
while(1)
{
ShowMenu();
scanf("%d", &nSelectNum);
switch(nSelectNum)
{
case PUSH :
printf("Input Value : ");
scanf("%d", &nPushVal);
push(nPushVal);
printf("PUSH %d n", nPushVal);
break;
case POP :
nPopVal = 0;
nPopVal = pop();
if(nPopVal == -1)
break;
else
printf("POP %d n", nPopVal);
break;
case PRINT :
printstack();
break;
case EXIT :
printf("EXIT!! n");
exit(1);
default :
printf("Wrong Number!! n");
break;
}
}
}
휴;;(삐질삐질) 자료구조 중 가장 기본이라고 보셔도 되는 스택을 한번 구현해 봤습니다;;ㅋㅋ
오류가 있다면 댓글로 정중한 태클을 걸어주시기 바랍니다^^
-강아지포스