大家帮看看这个连表有什么错误

gooderfeng 2005-03-25 10:00:11
#include<iostream>
#include<cassert>
using namespace std;
typedef struct nodeType
{
int info;
struct nodeType* link;
};
nodeType* buildList()
{
nodeType* first, * newNode, *last;
int num;
cout<< "enter integer"<< endl;
cin>> num;
first = NULL;
while(num != -999)
{
newNode = new nodeType;
assert(newNode != NULL);
newNode->info = num;
//cout<< num<< endl;
newNode->link = NULL;
if (first = NULL)
{
cout<< "feng"<< endl;
first = newNode;
last = newNode;
}
else
{
last->link = newNode;
last = newNode;
}
cin>> num;
}
return first;
}

int main(void)
{
buildList();
return 0;
}
...全文
30 点赞 收藏 4
写回复
4 条回复
gooderfeng 2005年03月25日
谢谢大家,应该是没有初始化的问题.
回复 点赞
justioo 2005年03月25日
首先,
typedef struct nodeType
{
int info;
struct nodeType* link;
};
后并没有接 类型别名,可把 typedef去掉,否则会产生一个警告;

其次
nodeType* first, * newNode, *last;
没有分配内存
可以改为
nodeType * first=(nodeType*)malloc(sizeof(nodeType)),
* newNode=(nodeType*)malloc(sizeof(nodeType)),
*last=(nodeType*)malloc(sizeof(nodeType));

还有,
你的while(num != -999)这是不太规范的,可以改成其他结束标志(当然,也不一定要改)


修改后的程序:
#include<iostream>
#include<cassert>
#include<malloc.h>
using namespace std;
struct nodeType
{
int info;
struct nodeType* link;
};
nodeType* buildList()
{
nodeType* first=(nodeType*)malloc(sizeof(nodeType)),
* newNode=(nodeType*)malloc(sizeof(nodeType)),
*last=(nodeType*)malloc(sizeof(nodeType));
int num;
cout<< "enter integer"<< endl;
cin>> num;
first = NULL;
while(num != -999)
{
newNode = new nodeType;
assert(newNode != NULL);
newNode->info = num;
//cout<< num<< endl;
newNode->link = NULL;
if (first = NULL)
{
cout<< "feng"<< endl;
first = newNode;
last = newNode;
}
else
{
last->link = newNode;
last = newNode;
}
cin>> num;
}
return first;
}

int main(void)
{
buildList();
return 0;
}
在vc++ 6.0上通过
回复 点赞
gooderfeng 2005年03月25日
delete需要的时候在main里面delete
我就感觉很怪,我在书上看到的这个程序.
我测试一下不好用.
能给具体解释一下
到底那里很不好用啊.
first=newNode;应该是可以的.
回复 点赞
bing_huo 2005年03月25日
只看到new 没看到delete

还有
first = newNode;
last = newNode;

这种赋值好象也有问题。。。找本数据结构的书仔细看看吧。。。!~
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告