作者在 2010-04-23 13:51:11 发布以下内容
#include<iostream>
#include<stdlib.h>
using namespace std;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
//Status 是函数的类型,其值是函数结果状态代码
typedef int Status;
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;
typedef struct{
int *base;
int *top;
int stacksize;
}SqStack;
Status InitStack(SqStack &S){
S.base = (int *)malloc(STACK_INIT_SIZE *sizeof ( int ) );
if(!S.base) exit(OVERFLOW);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return OK;
}//Initstack
Status DestroyStack(SqStack &S){ //Destroy是释放存储空间
free(S.base);
S.base=NULL;
S.top=NULL;
S.stacksize=0;
return OK;
}//DestroyStack
Status ClearStack(SqStack &S){ //Clear是将栈置空
S.top=S.base;
return OK;
}//ClearStack
Status StackEmpty(SqStack S){
if(S.base==S.top) return TRUE;
return FALSE;
}//StackEmpty
int StackLength(SqStack S){
return S.top-S.base;
}//StackLength
Status GetTop(SqStack S,int &e){
if(S.top==S.base) return ERROR;
e=*(S.top-1);
return OK;
}//GetTop
Status Push(SqStack &S,int e){ //插入e为栈顶元素
if(S.top-S.base>=S.stacksize){
S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));
if(!S.base) exit(OVERFLOW);
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return OK;
}//Push
int main(){
SqStack S;
int a;
InitStack(S);
Push(S,8);
GetTop(S,a);
cout<<a<<endl;
cout<<S.stacksize<<endl;
cout<<StackLength(S)<<endl;
getchar();
return 0;
}
#include<stdlib.h>
using namespace std;
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
//Status 是函数的类型,其值是函数结果状态代码
typedef int Status;
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;
typedef struct{
int *base;
int *top;
int stacksize;
}SqStack;
Status InitStack(SqStack &S){
S.base = (int *)malloc(STACK_INIT_SIZE *sizeof ( int ) );
if(!S.base) exit(OVERFLOW);
S.top=S.base;
S.stacksize=STACK_INIT_SIZE;
return OK;
}//Initstack
Status DestroyStack(SqStack &S){ //Destroy是释放存储空间
free(S.base);
S.base=NULL;
S.top=NULL;
S.stacksize=0;
return OK;
}//DestroyStack
Status ClearStack(SqStack &S){ //Clear是将栈置空
S.top=S.base;
return OK;
}//ClearStack
Status StackEmpty(SqStack S){
if(S.base==S.top) return TRUE;
return FALSE;
}//StackEmpty
int StackLength(SqStack S){
return S.top-S.base;
}//StackLength
Status GetTop(SqStack S,int &e){
if(S.top==S.base) return ERROR;
e=*(S.top-1);
return OK;
}//GetTop
Status Push(SqStack &S,int e){ //插入e为栈顶元素
if(S.top-S.base>=S.stacksize){
S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));
if(!S.base) exit(OVERFLOW);
S.top=S.base+S.stacksize;
S.stacksize+=STACKINCREMENT;
}
*S.top++=e;
return OK;
}//Push
int main(){
SqStack S;
int a;
InitStack(S);
Push(S,8);
GetTop(S,a);
cout<<a<<endl;
cout<<S.stacksize<<endl;
cout<<StackLength(S)<<endl;
getchar();
return 0;
}
【【
\栈与队列\栈.cpp(20) : error C2143: 语法错误 : 缺少“)”(在“;”的前面)
\栈与队列\栈.cpp(20) : error C2100: 非法的间接寻址
\栈与队列\栈.cpp(20) : error C2059: 语法错误 : “)”
\栈与队列\栈.cpp(51) : error C2143: 语法错误 : 缺少“)”(在“;”的前面)
\栈与队列\栈.cpp(51) : error C2143: 语法错误 : 缺少“)”(在“;”的前面)
\栈与队列\栈.cpp(51) : error C2059: 语法错误 : “)”
\栈与队列\栈.cpp(51) : error C2100: 非法的间接寻址
\栈与队列\栈.cpp(51) : error C2059: 语法错误 : “)”
】】
今天写了一点关于栈的代码,用vs2008编译时出现了这些个错误,很闹心。我在百度上看了很多解决办法,仍然解决不了,就拉出来让大家看看,希望高手给解决一下,小弟不胜感激~~~