C++顺序栈的问题,怎么总是没定义?用的是VC++6.0
#include<stdio.h>#include<iostream.h>#defineinitSize100#defineincrement20typedefstruc...
#include<stdio.h>
#include<iostream.h>
#define initSize 100
#define increment 20
typedef struct{
int *elem;
int maxSize,top;
}SeqStack;
void InitStack(SeqStack &S){
S.elem=new int[initSize];
if(S.elem==NULL){cerr<<"存储分配失败!"<<endl;}
S.maxSize=initSize;
S.top=-1;
};
void push(SeqStack &S,int x){
if(StackFull(S))OverflowProcess(S);
S.elem[++S.top]=x;
};
void OverflowProcess(SeqStack &S){
int *newArray=new int[S.maxSize+increment];
if(newArray==NULL){cerr<<"存储分配失败!"<<endl;}
for(int i=0;i<=S.top;i++)newArray[i]=S.elem[i];
S.maxSize=S.maxSize+increment;
delete[]S.elem;
S.elem=newArray;
};
void main(){
};
error C2065: 'StackFull' : undeclared identifier
error C2065: 'OverflowProcess' : undeclared identifier
error C2373: 'OverflowProcess' : redefinition; different type modifiers
怎么解决好? 展开
#include<iostream.h>
#define initSize 100
#define increment 20
typedef struct{
int *elem;
int maxSize,top;
}SeqStack;
void InitStack(SeqStack &S){
S.elem=new int[initSize];
if(S.elem==NULL){cerr<<"存储分配失败!"<<endl;}
S.maxSize=initSize;
S.top=-1;
};
void push(SeqStack &S,int x){
if(StackFull(S))OverflowProcess(S);
S.elem[++S.top]=x;
};
void OverflowProcess(SeqStack &S){
int *newArray=new int[S.maxSize+increment];
if(newArray==NULL){cerr<<"存储分配失败!"<<endl;}
for(int i=0;i<=S.top;i++)newArray[i]=S.elem[i];
S.maxSize=S.maxSize+increment;
delete[]S.elem;
S.elem=newArray;
};
void main(){
};
error C2065: 'StackFull' : undeclared identifier
error C2065: 'OverflowProcess' : undeclared identifier
error C2373: 'OverflowProcess' : redefinition; different type modifiers
怎么解决好? 展开
3个回答
展开全部
你的确没有定义函数StackFull函数!!!OverflowProcess函数你虽然定义了,但是你在定义前使用了,你可以在最前面声明一下,也可以把OverflowProcess函数写着前面。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/// 添加了StackFull()函数,并将函数OverflowProcess()的定义位置移到函数push()的前面。
#include <stdio.h>
#include <iostream.h>
#define initSize 100
#define increment 20
typedef struct {
int *elem;
int maxSize,top;
}SeqStack;
void InitStack(SeqStack &S) {
S.elem = new int[initSize];
if(S.elem == NULL) {
cerr << "存储分配失败!\n";
}
S.maxSize = initSize;
S.top = -1;
} // ;
void OverflowProcess(SeqStack &S) {
int *newArray = new int[S.maxSize+increment];
if(newArray == NULL) {
cerr << "存储分配失败!\n";
}
for(int i = 0;i <= S.top;i++) newArray[i] = S.elem[i];
S.maxSize = S.maxSize + increment;
delete[]S.elem;
S.elem = newArray;
} // ;
bool StackFull(SeqStack &S) {
return (S.top + 1 >= S.maxSize);
}
void push(SeqStack &S,int x) {
if(StackFull(S)) OverflowProcess(S);
S.elem[++S.top] = x;
} // ;
void main(){};
#include <stdio.h>
#include <iostream.h>
#define initSize 100
#define increment 20
typedef struct {
int *elem;
int maxSize,top;
}SeqStack;
void InitStack(SeqStack &S) {
S.elem = new int[initSize];
if(S.elem == NULL) {
cerr << "存储分配失败!\n";
}
S.maxSize = initSize;
S.top = -1;
} // ;
void OverflowProcess(SeqStack &S) {
int *newArray = new int[S.maxSize+increment];
if(newArray == NULL) {
cerr << "存储分配失败!\n";
}
for(int i = 0;i <= S.top;i++) newArray[i] = S.elem[i];
S.maxSize = S.maxSize + increment;
delete[]S.elem;
S.elem = newArray;
} // ;
bool StackFull(SeqStack &S) {
return (S.top + 1 >= S.maxSize);
}
void push(SeqStack &S,int x) {
if(StackFull(S)) OverflowProcess(S);
S.elem[++S.top] = x;
} // ;
void main(){};
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
'StackFull'
'OverflowProcess'
'OverflowProcess'
在程序中以上三个函数都没有定义过,怎么能够拿来用了?
'OverflowProcess'
'OverflowProcess'
在程序中以上三个函数都没有定义过,怎么能够拿来用了?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询