关于网友提出的“ 写一个链表程序,老是报错,高手请进!详见下”问题疑问,本网通过在网上对“ 写一个链表程序,老是报错,高手请进!详见下”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 写一个链表程序,老是报错,高手请进!详见下
描述: 在windows下用VV6.0写一个c语言链表程序,代码如下:
定义了两个结构体:
typedef struct
{
int element;//结点的成员
Link *next;//指向结点的后一个成员
}Link;
typedef struct
{
Link *head;//链表的头结点
Link *tail;//链表的末节点
int num=0;//链表中元素的个数
}Line;
写这个链表的添加函数,代码如下:
bool add(Line line,Link* link )
{
if(line.num==0)
{
link->next=NULL;//这里总是说NULL是不可以引用的变量。
line.head=line.tail=link;
line.num =1;
return true;
}
else
{
link->next=line.head;
line.head=link;
line.num++;
return true;
}
return false;
}
添加函数注释的地方总是说NULL不可以引用。我都无语了。请高手解答。我开始改过
if(line.num==0)为if(line.head==NULL),也是一样的错
解决方案1: 这样好像就可以啦。。
#include //here
enum bool
{
false = 0,
true
};
typedef struct _Link
{
int element;
struct _Link *next; //here
}Link;
typedef struct
{
Link *head;
Link *tail;
int num ; //here
}Line;
bool add(Line line,Link* link )
{
if(line.num==0)
{
link->next=NULL;
line.head=line.tail=link;
line.num =1;
return true;
}
else
{
link->next=line.head;
line.head=link;
line.num++;
return true;
}
return false;
}
解决方案2:
上面的和C差不多,不过有个疑问,如果是C的话,bool是你自己定义的?
如果自己定义了,那前面加上头文件就可以使用NULL了。
解决方案3:#include //here
typedef struct _Link
{
int element;
struct _Link *next; //here
}Link;
typedef struct
{
Link *head;
Link *tail;
int num ; //here
}Line;
bool add(Line line,Link* link )
{
if(line.num==0)
{
link->next=NULL;
line.head=line.tail=link;
line.num =1;
return true;
}
else
{
link->next=line.head;
line.head=link;
line.num++;
return true;
}
return false;
}
解决方案4: 另外C++中在结构内部int num = 0; 应该是不可以的
typedef struct
{
Link *head;//链表的头结点
Link *tail;//链表的末节点
int num=0;//链表中元素的个数
}Line;
解决方案5:
typedef struct Link //注意这里,要事先声明Link不然Link *next会出错
{
int element;//结点的成员
Link *next;//指向结点的后一个成员
}Link;
解决方案6: typedef struct
{
Link *head;//链表的头结点
Link *tail;//链表的末节点
int num=0;//链表中元素的个数
}Line;
int num=0; 结构体中不能这么定义。
还有你的add函数Line line,最好用指针类型,你的方式是按值传递,不好。
解决方案7: bool add(Line line,Link* link )
你的add函数居然不负责分配内存,到时候估计你代码很容易出错
解决方案8: NULL改成0 吧.
这个在stddef.h中定义的
以上介绍了“ 写一个链表程序,老是报错,高手请进!详见下”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2869808.html