满意答案
llflng
2014.05.01
采纳率:51% 等级:8
已帮助:514人
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172#include #include #include #define Maxsize 1024typedef struct{ int data[Maxsize]; int top,base;}stack; stack *InitStack(stack *s){ //置空双向栈 s->top=-1; s->base=Maxsize; return s; } int panduan(stack *s){ //判断是否满了 if ((s->top+1)==(s->base)) return 1; else return 0;}int empty(stack *s,int i){ //判断两个栈是否为空,i为栈号 if (i==0&&s->top==-1||i==1&&s->base==Maxsize) return 1; else return 0;} void push(stack *s,int i,int e){ //入栈 while (panduan(s)){ if(i==1){ s->top++; s->data[s->top]=e; } else if(i==2){ s->base--; s->data[s->base]=e; } else printf("您输入的栈号不正确"); break; }} //这里少了括号int *Pop(stack *s , int i ){ //出栈 i为栈号 int *ret; if (empty(s,i)) { printf("空栈"); return NULL; } else { if(i==1){ s->top--; ret=(int *)malloc(sizeof(int)); *ret=s->data[s->top+1]; return ret; } else{ s->base++; ret=(int *)malloc(sizeof(int)); *ret=s->data[s->base-1]; return ret; } }}void main() //少了main,自己实现,编译通过{}追答:嗯,是的
00分享举报