注册 登录
编程论坛 C++教室

一个列表程序的疑惑

小靖 发布于 2007-08-03 10:51, 447 次点击

#include <iostream.h>

struct node
{
int data;
node *next;
};

node *head;

int main()
{
int n,a;
node *p,*m;
cout<<"要建立多长的链表:"<<endl;
cin>>n;
cout<<"请输入"<<n<<"个数"<<endl;
for(int i=0;i<n;++i)
{
cin>>a;
p=new node;
p->data=a;
p->next=NULL;

if(i==0)
{
head=p;
m=p;
}
else
{
m->next=p;
m=m->next;
}
}
p=head;
while(p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}

return 0;
}

cin>>a;
p=new node;
p->data=a;
p->next=NULL;

在这个地方..p指针已经是node对象..为什么还要new一个才能调用他的成员呢..*head在程序外部时候怎么不能调用成员,就是head->无效..

我买的C++的书,都没一本有讲链表..我都是看网上例子说的..有些地方有点迷糊

[此贴子已经被作者于2007-8-3 10:53:01编辑过]

2 回复
#2
bupthehe2007-08-03 11:37

在这段代码之前,你只是对这个结构体进行了定义,也就是说,没有对他分配存贮空间、

只有NEW NODE;开辟了动态内存空间给这个节点以后,才能在这个节点里存放数据啊

#3
aipb20072007-08-03 17:49
去买数据结构啊,c++里当然没有。
1