大家帮忙看一下这个头结点,小弟我的头都想爆了!
大家帮忙看一下这个头结点,我的头都想爆了!!!
typedef struct LNode{
char data;
struct LNode *next;
}LNode,*LinkList;
LinkList CreateListR()//初始化
{LinkList L;
char ch;
LinkList p,r;
L=new LNode;//申请头结点空间
if(!L) exit(1);
L->next=NULL;
r=L; //r始终指向尾结点
cin>>ch;
while(ch!='#'){
p=new LNode;
if(!p) exit(1);
p->data=ch;
p->next=NULL;
r->next=p;r=p;
cin>>ch;
}return L;
}
这个是建立一个单链表的,可是里面的头结点只是建立了一下,并把L->next=NULL;,以后好像没他什么事呀,这究竟是怎么回事呀!!!!!
------解决方案--------------------
因为这一句
r=L; //r始终指向尾结点
则以后对r的操作就会添加到L 上面,也就是加到L的后面。返回L 就是头了。
typedef struct LNode{
char data;
struct LNode *next;
}LNode,*LinkList;
LinkList CreateListR()//初始化
{LinkList L;
char ch;
LinkList p,r;
L=new LNode;//申请头结点空间
if(!L) exit(1);
L->next=NULL;
r=L; //r始终指向尾结点
cin>>ch;
while(ch!='#'){
p=new LNode;
if(!p) exit(1);
p->data=ch;
p->next=NULL;
r->next=p;r=p;
cin>>ch;
}return L;
}
这个是建立一个单链表的,可是里面的头结点只是建立了一下,并把L->next=NULL;,以后好像没他什么事呀,这究竟是怎么回事呀!!!!!
------解决方案--------------------
因为这一句
r=L; //r始终指向尾结点
则以后对r的操作就会添加到L 上面,也就是加到L的后面。返回L 就是头了。