其他可无视,从main看起,main函数很简单,为什么cout出一个"?"号?
#include<iostream.h>typedef char datatype;
const int maxsize=100;
struct sqstack
{
datatype data[maxsize];
int top;
};
void init_sqstack(sqstack & sq);
int empty_sqstack(sqstack & sq);
int push_sqstack(sqstack & sq,datatype x);
int pop_sqstack(sqstack & sq,datatype x);
void creat_sz(char * &yh,int n);
void Output(char *pa,int n);
void main()
{
sqstack A;
init_sqstack(A);
char *yh=NULL,ch;
//int n;
//cin>>n;
//creat_sz(yh,n);
//Output(yh,n);
push_sqstack(A,'1');
pop_sqstack(A,ch);
cout<<ch<<endl;
}
void init_sqstack(sqstack & sq)
{
sq.top=-1;
}
int empty_sqstack(sqstack & sq)
{
if(sq.top==-1) return 1;
else return 0;
}
int push_sqstack(sqstack & sq,datatype x)
{
if(sq.top==maxsize-1)
{
cout<<"栈满,不能进栈!\n";
return 0;
}
else
{
sq.data[(sq.top)++]=x;
return 1;
}
}
int pop_sqstack(sqstack & sq,datatype x)
{
if(sq.top==-1)
{
cout<<"栈空,不能退栈!\n";
return 0;
}
else
{
x=sq.data[sq.top--];
return 1;
}
}
void creat_sz(char * &yh,int n)
{
int i=0;
yh=new char[n+1];
while(i<n)
{
cin>>yh[i];
i++;
}
}
void Output(char *pa,int n)
{
if(pa==NULL)
{cout<<" allocation faiure\n";}
for(int i=0;i<n;i++)
{
cout<<pa[i];
}
cout<<endl;
}