|
5鱼币
// test14.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdlib.h>
struct film
{
char name[40];
int mark;
};
typedef struct film Item;
typedef struct node
{
Item item;
struct node *next;
}Node;
typedef Node *List;
void Initialinelist(Node *plist);//初始化空链表指针
bool ListisEmpty(Node *plist);//确定指针是否为空
bool ListisFull(Node *plist);//确定指针是否满
unsigned int ListItemCount(Node *plist);//确定列表的个数
bool AddItem(Item item,Node *plist);//在尾部增加项目
void Traverse(Node *plist,void(*pfun)(Item item));//吧一个函数用于每个列表
void FreeList(Node *plist);//释放内存
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
void Initialinelist(Node* plist)
{
*plist=NULL;
}
bool ListisEmpty(Node *plist)
{
if(*plist==NULL)
{
return true;
}
else
return false;
}
bool ListisFull(Node *plist)
{
Node *pt;
bool full;
pt=(Node *)malloc(sizeof(Node));
if(pt==NULL)
{
full=true;
}
else
full=false;
free(pt);
return full;
}
运行报错
c:\users\administrator\desktop\test\test14\test14\test14.cpp(35) : error C2679: 二进制“=”: 没有找到接受“int”类型的右操作数的运算符(或没有可接受的转换)
1> c:\users\administrator\desktop\test\test14\test14\test14.cpp(17): 可能是“node &node::operator =(const node &)”
1> 试图匹配参数列表“(Node, int)”时
1>c:\users\administrator\desktop\test\test14\test14\test14.cpp(39) : error C2676: 二进制“==”: “Node”不定义该运算符或到预定义运算符可接收的类型的转换
typedef Node *List; 这句话是把 定义个List的别名吧,bool ListisEmpty(Node *plist)
把Node改成List可以通过 但是我前面
typedef struct node
{
Item item;
struct node *next;
}Node; 不是已经定义了个 已NODE为别名的struct node
数据结构了嘛 为什么还要定义一次
在线等回答啊
|
最佳答案
查看完整内容
vs2008编译通过,修改两个地方,如下修改处1、plist是Node类型的指针,所以初始化只能用plist,*plist是对象,指向的是Node的结构,如果要初始化,不能这样赋值哦。
修改处2:理由:如1.
内部逻辑没有细看,自行调试哦。
|