该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
error C2065: *top* : undeclared identifier error C2228: left of *.top* must have class/struct/union type
#define INITSIZE 100 //栈的存储空间初始分配量
#include
#include
typedef int ElemType;
typedef struct
{ int top; //栈顶指针
ElemType *base; //栈底指针,存放空间起始地址
int stacksize; //当前栈空间的长度
}sqstack;
void initstack(sqstack *S) //初始化栈S
{
S->base=(ElemType *)malloc(INITSIZE*sizeof(ElemType));
if(!S->base) exit (-1);
S->top=0; /*空栈标志*/
S->stacksize = INITSIZE;
}
int gettop(sqstack S,ElemType *e) //获取栈顶元素
{
if ( S.top==0 ) /* 栈空 */
{ printf("Stack is empty!\n");
return 0;
}
*e= S.base[top-1];
return 1;
}
int push ( sqstack *S , ElemType x ) //入栈
{
if (S->top == S->stacksize)
{ S->base=
(ElemType *)realloc(S->base,(S->stacksize+1)*sizeof(ElemType));
if(!S->base) exit(-1);
S->stacksize++;
}
S->base[S->top++] = x;
return 1 ;
}
int pop(sqstack *S, ElemType *e) //出栈
{
if (S.top==0)
{ printf("Stack is empty");
return 0;
}
*e=S->base [-- S->top ] ;
return 1;
}
int stackempty(sqstack S) //判断栈是否为空
{
if (S.top==0)
return 1 ;
else
return 0 ;
}