首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

如何编译不过,而且会有声音

2012-03-20 
怎么编译不过,而且会有声音#includeiostream#includemalloc.h#define STACK_INIT_SIZE100#define STAC

怎么编译不过,而且会有声音
#include<iostream>
#include<malloc.h>
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OK 1;
#define ERROR 0;
using namespace std;
typedef int Status;
typedef char ElemType;
typedef char SElemType;
typedef struct
{
  SElemType *base;
  SElemType *top;
  int stacksize;
  }SqStack;

Status InitStack (SqStack &S);
Status DestroyStack(SqStack &S);
Status ClearStack(SqStack &S);
Status StackEmpty(SqStack S);
int StatusLength(SqStack S);
Status GetTop(SqStack S,SElemType &e); //若栈不空,则用e返回S的栈顶元素,并返回OK,否则返回ERROR
Status Push(SqStack &S,char e); //插入元素e为新的栈顶元素
Status Pop(SqStack &S,char &e); //若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK,否则返回ERROR
Status StackTraverse(SqStack S,Status (*visit)()); //从栈顶到栈底依次对栈中每个元素调用函数visit(),一旦调用失败,则返回失败


Status InitStack(SqStack &S){
  S.base = (ElemType *) malloc(STACK_INIT_SIZE *sizeof(ElemType));
  if(!S.base ) return ERROR; //存储分配失败
  S.top =S.base; //栈空时,栈顶和栈底指针相同
  S.stacksize = STACK_INIT_SIZE; //增加内存空间
  return OK;
}

Status StackEmpty(SqStack S)
{
  if(S.top == S.base)
  return OK
  else return ERROR;
  }

Status GetTop(SqStack S, SElemType &e){
  if(S.top == S.base) return ERROR;
  e= *(S.top -1);
  return OK;
}

Status Push(SqStack &S,SElemType e){
  if(S.top-S.base >= S.stacksize-1){
  S.base = (SElemType *)realloc(S.base,(S.stacksize + STACKINCREMENT)* sizeof(SElemType)); //栈满,增加存储空间
  if(!S.base) return ERROR;
  S.top = S.base + S.stacksize;
  S.stacksize += STACKINCREMENT;
  }
  *(S.top ++) = e;
  return OK;
}

Status Pop(SqStack &S,SElemType &e){
  if(S.top == S.base) return ERROR;
  e = *(--S.top);
  return OK;
}

int main()
{
  SqStack S;
  char x,y;
  x='c';y='k';
  Push(S,'c');Push(S,'a');Push(S,'k');
  Pop(S,x); Push(S,'t');Push(S,'c');
  Pop(S,x);Push(S,'s');
  while(! StackEmpty(S)){ Pop(S,y);cout<<y<<endl;};
  cout<<x<<endl;
  return 0;
  }

用C++编写的,关于栈的问题,可是怎么编译不过,哪里出了问题,求解?


[解决办法]
看上去没什么错误,把错误码贴出来
[解决办法]
S没有初始化

InitStack(S);
[解决办法]
贴出错误提示更好追踪。
[解决办法]
没有初始化~
InitStack
[解决办法]
程序编译没任何问题
编译环境:
gcc 4.5.3 for cygwin
vc2008 64bit
c++ builder 2010

热点排行