数据结构程序编写

来源:百度知道 编辑:UC知道 时间:2024/06/04 13:40:33
有两个栈s1和s2共享存储空间c(1,m),其中一个栈底设在c[1]处,另一个栈底设在c[m]处,分别编写s1和s2的进栈push(i,x),退栈pop(i)和设置栈空setnull(i)的函数,其中i=1,2. 注意:仅当整个空间c[1,m]占满时才产生上溢

//top1,top2和m0均为已赋初值的int型全局变量
void push(x,i)
int i;
ElemType x;
{
if (top1==top2-1)printf("上溢出!\n");
else if (i==1)//对第一个栈进行入栈操作
{top1++;c[top1]=x;}
else //对第二个…………
{top2--;c[top2]=x;}
}
//函数pop
void pop(i)
int i;
{
if (i==1)//对第一个栈进行出栈操作
{
if(top1==0)printf("栈1下溢出!\n");
else {pop=c[top1];top1--;}
else //对第二个……
{
if(top==m0+1)printf("栈2下溢出!\n");
else {pop=c[top2];top2++;}
}
//函数setnull
setnull(i)
int i;
{
if (i==1)top1=0;
else top2=m0+1;
}

房主``说清楚点