|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目:将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。两个栈均从两端向中间增长。试编写双栈初始化,判断栈空、栈满、进栈和出栈等算法的函数。双栈数据结构的定义如下:
Typedef struct
{int top[2],bot[2]; //栈顶和栈底指针
SElemType *V; //栈数组
int m; //栈最大可容纳元素个数
}DblStack
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
typedef struct{
int top[2],bot[2];
SElemType*V;
int m;
}
Status Init_Stack CDbl(Stack &s,int m){
s.V=new SelemType[m];
s.bot[0]=-1;s.bot[1]=m;
s.top[0]=-1;s.top[1]=m;
return OK;
}
int IsEmpty(DblStack s,int i){
return s.top[i]==s.bot[i];
}
int IsFull(DblStack s){
if(s.top[0]+1==s.top[1]);return 1;
else return 0;
}
void DblPush(DblStack &s,SElemType x,int i)
{
if(IsFull(s)) exit(1);
if(i==0)s.V[++s,top[0]]=x;
else s.V[--s.top[1]]=x;
}
int Dblpop[DblStack &s,int i,SelemType &x]
{
if(IsEmpty(s,i))return 0;
if(i==0)s.top[0]--;
else s.top[1]++;
return 1;
}
}
问题:为什么上面的代码会出现报错,我是错在什么地方??? |
|