#include "ds.h"
using namespace std;
//------------结构体定义--------------------
typedef struct
{
int row;
int col;
}postype;
typedef struct
{ postype seat; //当前的坐标位置
directivetype di;
}elemtype;
typedef struct
{
elemtype elem;
struct stacknode *next;
} StackNode ,*LinkStack;//////////////////这里有问题
//-------栈函数---------------------------------
int InitStack(LinkStack &S)
{ S=NULL;
return OK; //构造空栈
}
int StackEmpty(LinkStack S)
{ if(S==NULL)
return 1;
else
return 0; //判断栈是否为空
}
int Push(LinkStack &S, elemtype e)
{ LinkStack p;
p=(LinkStack )malloc(sizeof(StackNode));
p->elem=e;
p->next= S;//////////////////////这里有问题
S=p;
return OK; //在栈顶压入新数据元素
}
int Pop(LinkStack &S, elemtype e) //栈顶元素出栈
{ LinkStack p;
if(!StackEmpty(S))
{
e=S->elem;
p=S;
S=S->next;///////////////这里有问题
free(p);
return OK;
}
else
{
cout<<"栈已空,无值出栈!\n";
return ERROR;
}
}
。。。error C2440: '=' : cannot convert from 'StackNode *' to 'struct stacknode *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
。。。error C2440: '=' : cannot convert from 'struct stacknode *' to 'StackNode *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
帮忙看一下
很急啊!
cannot convert from 'StackNode *' to 'struct stacknode *
答案:2 悬赏:40 手机版
解决时间 2021-02-07 04:15
- 提问者网友:欲望失宠
- 2021-02-06 20:28
最佳答案
- 五星知识达人网友:蓝房子
- 2021-02-06 21:04
你应该这样定义:
typedef struct
{
elemtype elem;
StackNode *next;
} StackNode ,*LinkStack;
既然是StackNode 的指针,为什么大小写还不一样呢?这可是大小写敏感的!
typedef struct
{
elemtype elem;
StackNode *next;
} StackNode ,*LinkStack;
既然是StackNode 的指针,为什么大小写还不一样呢?这可是大小写敏感的!
全部回答
- 1楼网友:神鬼未生
- 2021-02-06 21:34
就是定义一个这种结构体类型的指针,比如说你定义了typedef struct stacknode { selemtype data; struct stacknode * next; }stacknode,*linkstackptr;,然后我在使用的时候这样定义了一个变量 linkstackptr sss;这个定义就等同于stacknode *sss;这样定义
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯