C语言实现栈 typedef struct { int *base; int *top; int stackSize; }sqStack; int initStack(sqStack &s) { s.base=(int *)malloc(sizeof(sqStack)*STACK_INIT_SIZE); if (!s.base) { exit(OVERFLOW); } s.top=s.base; s.stackSize=STACK_INIT_SIZE; return OK; } int getTop(sqStack &s,int &data) { if (s.top==s.base) { return ERROR; } data=*(s.top-1); return OK; } int push(sqStack &s,int data) { if (s.top-s.base>=s.stackSize) { s.base=(int *)realloc(s.base,sizeof(sqStack)*STACK_INIT_SIZE+STACK_INCREMENT); if (!s.base) { exit(OVERFLOW); } s.top=s.base+s.stackSize; s.stackSize+=STACK_INIT_SIZE; } *(s.top++)=data; return OK; } int pop(sqStack &s,int &data) { if (s.base==s.top) { return ERROR; } data=*--s.top; return OK; }