栈的问题,可以连续压入字符串再一起弹出吗?
程序代码:#include"stdlib.h"
#include"iostream.h"
#include"conio.h"
typedef char elemtype; //类型
#define stacksize 100 //顺序栈原始分配空间
typedef struct
{
elemtype data[stacksize]; //保存栈中元素
int top; //栈指针
}sqstack;
void initstack(sqstack*st) //st为应用型参数
{
st->top=-1; //表示栈中为空
}
int push(sqstack*st,elemtype x)
{
if(st->top==stacksize-1) //是否栈满
return 0;
else
{
st->top++; //修改栈顶指针
st->data[st->top]=x; //指针指向存储单元
return 1;
}
}
int pop(sqstack*st,elemtype*x)
{
if(st->top==-1)
return 0;
else
{
*x=st->data[st->top]; //取栈顶元素
st->top=st->top-1; //修改指针
return 1;
}
}
int gettop(sqstack*st,elemtype*x)
{
if(st->top==-1)
return 0;
else
{
*x=st->data[st->top];
return 1;
}
}
int stackempty(sqstack*st)
{
if(st->top==-1)
return 1;
else
return 0;
}
void main()
{
int i,n;
sqstack st;
elemtype m,a[100];
initstack(&st);
cout<<"请输入元素个数"<<endl;
cin>>n;
cout<<"请输入元素"<<endl;
cin>>m;
push(&st,m);
pop(&st,&a[0]);
for(i=1;i<=n-1;i++)
{
cin>>m;
push(&st,m);
}
cout<<"出栈次序:";
for(i=0;i<=n-1;i++)
{
pop(&st,&a[i+1]);
cout<<a[i];
}
cout<<endl;
}
栈可以连续压入字符串再一起弹出吗?
比如说 我输入要输入元素3个,压入 ab bc cd,可以把ab或bc或者cd压入同一个再一起输出吗?
上面的代码输入ab bc cd 的话弹出的是abb。。怎么输出ab cd bc呢?








