error C2679: 二进制“=”: 没有找到接受“LinkType”类型的右操作数的运算符(或没有可接受的转换)如何改?

shaorongjie 2009-05-18 08:48:47
typedef struct NodeType{
ElemType data;
NodeType *next;
}NodeType,*LinkType;//结点类型,指针类型
typedef struct{
LinkType head,tail;//分别指向线性链表的头结点和尾结点
int size;//指示链表当前的长度
}OrderList;//有序链表类型

void DestoryList(OrderList&L){
//销毁有序链表L,并释放链表中每个节点所占空间
NodeType p,q;
p=L.head;//此处有误,错误为 二进制“=”: 没有找到接受“LinkType”类型的右操作数的运算符(或没有可接受的转换)如何改?
while(p!=L.tail){
q=p;
p=SuccNode(q);
free(q);
}
L.head=NULL;
L.tail=NULL;
}
...全文
752 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
南之倩倩 2011-12-19
  • 打赏
  • 举报
回复
结构体,不能直接赋值的。
要不就用memset赋值也行。
Vector_fz 2011-12-19
  • 打赏
  • 举报
回复
改成LinkType
结构不能直接 =
lsxsxs 2011-12-19
  • 打赏
  • 举报
回复
楼主你解决了吗,能告诉一下是怎么解决的吗,我也遇到同样的问题
benxiongs 2011-10-20
  • 打赏
  • 举报
回复
我也有问题~
cyldf 2009-05-18
  • 打赏
  • 举报
回复

NodeType p,q;
p=L.head;//此处有误,错误为 二进制“=”: 没有找到接受“LinkType”类型的右操作数的运算符(或没有可接受的转换)如何改?

此处你p是struct NodeType类型,L.head是struct NodeType *,不一样的类型,不能用=号赋值的
datacode 2009-05-18
  • 打赏
  • 举报
回复
不知道你的程序要干什么...
ljmscsq 2009-05-18
  • 打赏
  • 举报
回复
p=L.head;
head是LinkType类型,这个是指针
p是NodeType,可能因为这样赋值出错了吧

你把p,q也声明为LinkType应该就可以了
arong1234 2009-05-18
  • 打赏
  • 举报
回复
你是学其他语言出身的?明显这里应该用指针而你没有用指针
L.head=NULL也是错误的

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧