//顺序栈
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#define Status int
#define SElemType int
#define Max 100
typedef struct{
SElemType *base;
SElemType *top;
int SizeMax;
}Sq;
Status news(Sq &S){
S.base=new SElemType[Max];
if(S.base!=0) return 0;
S.top=S.base;
S.SizeMax=Max;
printf("初始化成功!");
return 1;
}
Status in(Sq &S,SElemType e){
if(S.top-S.base==S.SizeMax)
return 0;
*(S.top++)=e;
//*S.top++;
return 1;
}
Status out(Sq &S,SElemType q){
if(S.top==S.base)
return 0;
q=*S.top;
S.top--;
return 1;
}
Status quzhi(Sq S){
if(S.top!=S.base)
return *(S.top-1);
}
Status Push(Sq &S){
int a,i,k;
printf("进入入栈操作");
printf("请输入想入栈的个数:");
scanf("%d",&a);
for(i=0;i<a;i++)
{
printf("输入的是第%d个数",i+1);
scanf("%d",&k);
in(S,k);
}
printf("入栈成功");
}
Status GoOut(Sq &S){
int a,i,k;
printf("进入出栈操作");
printf("请输入想出栈的个数:");
scanf("%d",&a);
for(i=0;i<a;i++)
{
printf("输入的是第%d个数",i+1);
scanf("%d",&k);
out(S,k);
}
printf("出栈成功");
}
int main(){
Sq S;SElemType e;int q;
news(S);
while(1)
{
printf("欢迎进入顺序栈的实践界面");
printf("1.入栈");
printf("2.出栈");
printf("3.出栈顶元素");
printf("请输入数字:");
scanf("%d",&q);
switch(q)
{
case 1:
Push(S);break;
case 2:
GoOut(S);break;
case 3:
quzhi(S);break;
}
}
}
这段程序的初始化一直就运行不了,不知道这是为什么,求解