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

为什么不能输出链表中的数

梦里仙 发布于 2012-09-20 19:37, 398 次点击
#include"iostream"
using namespace std;
typedef int Elemtype;
typedef struct LNode
{
Elemtype data;
struct LNode *next;
}LNode,*LinkList;

LinkList initList()
{
LinkList head;
head=new LNode;
head->next=NULL;
return head;
}

void createLinkList(LinkList &L,int n)
{
int i;
LinkList r,p;
L=r=NULL;
for(i=0;i<n;i++)
{
p=new LNode;
cin>>p->data;
if(p==NULL) L=p;
else
{
r->next=p;
r=p;
}
}
r->next=NULL;
}

void print(LinkList L)
{
    LinkList p;
    p=L;
    while(p!=NULL)
    {
    cout<<p->data<<"  ";
    p=p->next;
    }
}


void main()
{
LinkList A;
 A=initList();
createLinkList(A,8);
print(A);


}
4 回复
#2
lwbkfc2012-09-25 09:32
看不懂
#3
做梦追梦2012-09-25 16:23
编译没问题啊,不知道为什么~~~
#4
寒风中的细雨2012-09-25 17:55
void createLinkList(LinkList &L,int n)
{
int i;
LinkList r,p;
L=r=NULL;
for(i=0;i<n;i++)
{
p=new LNode;
cin>>p->data;
if(p==NULL) L=p;
else
{
r->next=p;
r=p;
}
}
r->next=NULL;
}

这段有错误
#5
做梦追梦2012-09-26 17:44
#include"iostream"
using namespace std;
typedef int Elemtype;
typedef struct LNode
{
Elemtype data;
struct LNode *next;
}LNode,*LinkList;

LinkList initList()
{
LinkList head;
head=new LNode;
head->next=NULL;
return head;
}

void createLinkList(LinkList &L,int n)//尾插法(正序)
{
int i;
LinkList r,p;
p=NULL;
r=L;
for(i=0;i<n;i++)
{
p=new LNode;
cin>>p->data;
//if(p==NULL) L=p;
r->next=p;
r=p;

}
r->next=NULL;
}

void print(LinkList L)
{
    LinkList p;
    p=L->next ;
    {
    cout<<p->data<<"  ";
    p=p->next;
    }
}


void main()
{
LinkList L=NULL;
L=initList();
cout<<"请连续输入8个数:"<<endl;
createLinkList(L,8);
print(L);
}
应该是头结点那里的问题~~~
1