求助。。。栈的操作。。
#include<stdio.h>#include<stdlib.h>
#define MAX 5
typedef struct{
int *top;
int *base;
int size;
}sqstack;
void initstack(sqstack &s){
// sqnode *p;
s.base=(int*)malloc(sizeof(sqstack));
if(s.base!=NULL)
s.top=s.base;
}
int push(sqstack s,int e){//元素E入栈S
*s.top=e;
s.top++;
++s.size;
return 0;
}
int pop(sqstack s){//元素出栈
int e;
s.top--;
e=*s.top;
return 0;
}
int gettop(sqstack s,int e){//用E返回栈的栈顶元素
while(s.size){
s.top--;
e=*s.top;
}
return e;
}
int main(){
sqstack s;
int i,e;
s.size=0;
initstack(s);
printf("现在是元素入栈:");
for(i=1;i<=MAX;i++){
scanf("%d",&e);
push(s,e);
}
printf("它的栈顶元素是%d.\n",gettop(s,e));
printf("现在是元素出栈:");
for(i=1;i<=MAX;i++){
e=pop(s);
printf("%3d",e);//问题在这里,在出栈输出后,怎么都是‘0’呀?
}
printf("\n");
return 0;
}
//希望大家帮我看看,谢谢喽!