主题:一个关于栈的报错问题,请各位大虾帮忙!
各位大虾帮忙呀,请看下一个关于栈的小程序,为何在编译时总在“进栈”那里报错呀,我用的的turbo c for windows 4.5
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
# define sqstack_maxsize 40
/* 顺序栈的容量 */
/* 定义 */
typedef struct sqstack
{
char data[sqstack_maxsize];
int top ;
}
SqStackTp ;
/* 初始化 */
int InitStack(SqStackTp*sq)
{
sq->top=0 ;
return(1);
}
/* 进栈 */
int Push(SqStackTp*sq,DateType x)
{
if(sq->top==sqstack_maxsize-1)
{
error("栈满");
return 0 ;
}
else
{
sq->top++;
sq->data[sq->top]=x ;
return(1);
}
}
/* 出栈 */
int Pop(SqStackTp*sq,DataType*x)
{
if(sq->top==0)
{
error("下溢");
return 0 ;
}
else
{
*x=sq->data[sq->top];
sq->top--;
return(1);
}
}
int EmptyStack(SqStackTp sq)
{ if(sq.top==0)
return(1);
else return(0);
}
main()
{
SqStackTp sq ;
int i ;
char ch ;
InitStack(&sq);
for(ch='A';ch<='A'+12;ch++)
{
Push(&sq,ch);
print("%c",ch);
}
print("\n");
while(!EmptyStack(sq))
{
Pop(&sq,&ch);
printf("%c",ch);
}
getch();
}
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
# define sqstack_maxsize 40
/* 顺序栈的容量 */
/* 定义 */
typedef struct sqstack
{
char data[sqstack_maxsize];
int top ;
}
SqStackTp ;
/* 初始化 */
int InitStack(SqStackTp*sq)
{
sq->top=0 ;
return(1);
}
/* 进栈 */
int Push(SqStackTp*sq,DateType x)
{
if(sq->top==sqstack_maxsize-1)
{
error("栈满");
return 0 ;
}
else
{
sq->top++;
sq->data[sq->top]=x ;
return(1);
}
}
/* 出栈 */
int Pop(SqStackTp*sq,DataType*x)
{
if(sq->top==0)
{
error("下溢");
return 0 ;
}
else
{
*x=sq->data[sq->top];
sq->top--;
return(1);
}
}
int EmptyStack(SqStackTp sq)
{ if(sq.top==0)
return(1);
else return(0);
}
main()
{
SqStackTp sq ;
int i ;
char ch ;
InitStack(&sq);
for(ch='A';ch<='A'+12;ch++)
{
Push(&sq,ch);
print("%c",ch);
}
print("\n");
while(!EmptyStack(sq))
{
Pop(&sq,&ch);
printf("%c",ch);
}
getch();
}