你是初学者的话,有些复杂,你可能看不懂,下面是代码:#include
#include
#define ok 1
#define error 0
#define stack 100
#define stacke 10
typedef struct{
int *base;
int *top;
int stacksize;
}sqstack;
int creat(sqstack &s){
s.base=(int*)malloc(stack*sizeof(int));
if(!s.base) return error;
s.top=s.base;
s.stacksize=stack;
return ok
}
int push(sqstack &s,int e){
if(s.base-s.top>=s.stacksize){
s.base=(int*)realloc(s.base,(stack+stacke)*sizeof(int));
s.top=s.base+s.stacksize;
s.stacksize+=stacke;
}
*s.top++=e;
retrun ok;
}
int stackempty(sqstack s){
if(s.top==s.base) return ok;
else
return error;
}
int pop(sqstack &s,int &e){
if(s.top==s.base) return error;
e=*--s.top
return ok;
}
main(){
sqstack s;
creat(s);
int a,c,i,e;
printf("请输入要反序的字母的个数:");
scanf("%d"&a);
char c[a];
for(i=0;i
scanf("%c",c[i]);
push(s,c[i]);
}
printf("the result is:):
while(!stackempty(s)){
pop(s,e);
printf("%d\n",e);
}
}