|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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<process.h>
#include<iostream>
#include<stdlib.h>
typedef strust{
int top[2],bot[2];SElemType*V;
int m;
}Dblstack
Status Init_(DblStack &s,int i){
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];
}
void DblPush(DblStack &s.SElemType x,int i){
if(IsFull(s))exit(1);
if(i==0)s.v[++s.top[0]]=x;
els 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;
}
提问:是否能够帮我找出错误并且告诉我错误在哪? |
|