读书人

关于动态创建链表的有关问题

发布时间: 2012-02-23 22:01:35 作者: rapoo

关于动态创建链表的问题
#include <iostream>
using namespace std;
struct table
{
int num;
table *next;
};
int main()
{
void print(table*);
table *Creat();
print(Creat());
return 0;
}
table *Creat()
{
table *head,*p;
head=new table;
p=head;
while(1)
{
cout<<"输入序号:";
cin>>p->num;
if(p->num==0)
{
p->next=NULL;
return head;
}
p=p->next;
p=new table;
}
}
void print(table *head)
{
table *p=head;
int i=1;
do
{
cout<<i++<<"号结点:"<<p->num<<endl;
p=p->next;
}while(p!=NULL);
}

编译通过,运行后弹出错误提示,说XX内存不能读。

[解决办法]
略微改了下,楼主对照看下~~

C/C++ code
#include <iostream>using namespace std;struct table{int num;table *next;};int main(){    void print(table*);    table *Creat();    print(Creat());    return 0; //return前注意delete,释放内存}table *Creat(){    table *head,*p;    head=new table;    p=head;    while(1)    {        cout<<"输入序号:";        cin>>p->num;        if(p->num==0)        {            p->next=NULL;            break;        }        p->next = new table;  //这里略微改了下        p = p->next;        p->next = NULL;    }    return head;}void print(table *head){    table *p=head;    int i=1;    do    {        cout<<i++<<"号结点:"<<p->num<<endl;        p=p->next;    }while(p); //这里用do while循环不太好,防止空链表} 

读书人网 >C++

热点推荐