主题:为什么编译说是这个问题?
为什么编译会说是这个错误
G:\ctrain\cpp11\Cpp2.cpp(61) : error C2039: 's' : is not a member of 'sqstack'
而且都是类似的问题,大家帮忙看看.
/* 栈的顺序表示和实现
1.初始化栈2.插入元素3.删除栈顶元素4.取栈顶元素5.遍历顺序栈
6.置空顺序栈 */
#include <stdio.h>
#include <malloc.h>
#include <math.h>
#include <process.h>
typedef int selemtype;
#define M 1000
typedef struct
{ selemtype *base;
selemtype *top;
int stacksize;
}sqstack;//定义一个栈结构体
void initsqstack(sqstack &s)//初始化一个顺序栈
{
s.base=(selemtype *)malloc(M*sizeof(selemtype));
if(!s.base)
exit(OVERFLOW);
s.top=s.base;
s.stacksize=M;
}
void push(sqstack &s,selemtype e)//插入元素,入栈
{
if(s.top-s.base>=s.stacksize)
{
s.base=(selemtype *)realloc(s.base,(s.stacksize+M)*sizeof(selemtype));
if(!s.base)
exit(OVERFLOW);
s.top=s.base+s.stacksize;
s.stacksize=M+s.stacksize;
}
*s.top=e;
s.top++;
//*(s.top++)=e;
}
selemtype pop(sqstack &s)//删除栈顶元素,出栈
{
selemtype e;
if(s.top==s.base)
return (0);
else
{
e=*(s.top-1);
s.top=s.top-1;
//e=*--top;
return (e);
}
}
selemtype gettop(sqstack &s)//取栈顶元素
{
if(s.base==s.top)
return(0);
else
return(*s.(top-1));
}
void outstack(sqstack &s)//遍历顺序栈
{
selemtype *p;
p=s.base;
if(s.base==s.top)
return (0);
else
{
while(p!=s.top)
{
printf(" %d",*p);
p++;
}
}
}
void clearstack(sqstack &s)//置为空栈
{
s.top=s.base;
}
void destory_stack(sqstack &s)
{
free(s.base);
s.base=NULL;
s.top=NULL;
s.stacksize=0;
}
int main()
{
int flag,e,y;
flag=1;
int cord;
sqstack sq;
while(flag)
{
printf("\n****************************************\n");
printf("\n 主菜单 \n");
printf("\n 1. 初始化顺序栈 \n");
printf("\n 2. 插入一个元素 \n");
printf("\n 3. 删除栈顶元素 \n");
printf("\n 4. 取栈顶元素 \n");
printf("\n 5. 置空顺序表 \n");
printf("\n 6. 结束程序运行 \n");
printf("\n****************************************\n");
printf("please choose the programme :(from 1-6)\n");
scanf("%d",&cord);
if(cord<1||cord>6)
{
printf("error!!,please input again!!!");
}
else
{ switch(cord)
{
case 1: initsqstack(sq);break;
case 2:{
printf("please input a element:\n");
scanf("%d",&e);
push(sq,e);
}
break;
case 3:{
pop(sq);
outstack(sq);
}
break;
case 4: {
y=gettop(sq);
printf("the top element is %d\n:",y);
outstack(sq);
}
break;
case 5:{
cleaksqstack(sq);
outstack(sq);
}
break;
case 6:flag=0;break;
default :flag=0; break;
}
}
}
return 0;
}
G:\ctrain\cpp11\Cpp2.cpp(61) : error C2039: 's' : is not a member of 'sqstack'
而且都是类似的问题,大家帮忙看看.
/* 栈的顺序表示和实现
1.初始化栈2.插入元素3.删除栈顶元素4.取栈顶元素5.遍历顺序栈
6.置空顺序栈 */
#include <stdio.h>
#include <malloc.h>
#include <math.h>
#include <process.h>
typedef int selemtype;
#define M 1000
typedef struct
{ selemtype *base;
selemtype *top;
int stacksize;
}sqstack;//定义一个栈结构体
void initsqstack(sqstack &s)//初始化一个顺序栈
{
s.base=(selemtype *)malloc(M*sizeof(selemtype));
if(!s.base)
exit(OVERFLOW);
s.top=s.base;
s.stacksize=M;
}
void push(sqstack &s,selemtype e)//插入元素,入栈
{
if(s.top-s.base>=s.stacksize)
{
s.base=(selemtype *)realloc(s.base,(s.stacksize+M)*sizeof(selemtype));
if(!s.base)
exit(OVERFLOW);
s.top=s.base+s.stacksize;
s.stacksize=M+s.stacksize;
}
*s.top=e;
s.top++;
//*(s.top++)=e;
}
selemtype pop(sqstack &s)//删除栈顶元素,出栈
{
selemtype e;
if(s.top==s.base)
return (0);
else
{
e=*(s.top-1);
s.top=s.top-1;
//e=*--top;
return (e);
}
}
selemtype gettop(sqstack &s)//取栈顶元素
{
if(s.base==s.top)
return(0);
else
return(*s.(top-1));
}
void outstack(sqstack &s)//遍历顺序栈
{
selemtype *p;
p=s.base;
if(s.base==s.top)
return (0);
else
{
while(p!=s.top)
{
printf(" %d",*p);
p++;
}
}
}
void clearstack(sqstack &s)//置为空栈
{
s.top=s.base;
}
void destory_stack(sqstack &s)
{
free(s.base);
s.base=NULL;
s.top=NULL;
s.stacksize=0;
}
int main()
{
int flag,e,y;
flag=1;
int cord;
sqstack sq;
while(flag)
{
printf("\n****************************************\n");
printf("\n 主菜单 \n");
printf("\n 1. 初始化顺序栈 \n");
printf("\n 2. 插入一个元素 \n");
printf("\n 3. 删除栈顶元素 \n");
printf("\n 4. 取栈顶元素 \n");
printf("\n 5. 置空顺序表 \n");
printf("\n 6. 结束程序运行 \n");
printf("\n****************************************\n");
printf("please choose the programme :(from 1-6)\n");
scanf("%d",&cord);
if(cord<1||cord>6)
{
printf("error!!,please input again!!!");
}
else
{ switch(cord)
{
case 1: initsqstack(sq);break;
case 2:{
printf("please input a element:\n");
scanf("%d",&e);
push(sq,e);
}
break;
case 3:{
pop(sq);
outstack(sq);
}
break;
case 4: {
y=gettop(sq);
printf("the top element is %d\n:",y);
outstack(sq);
}
break;
case 5:{
cleaksqstack(sq);
outstack(sq);
}
break;
case 6:flag=0;break;
default :flag=0; break;
}
}
}
return 0;
}