菜鸟问题,哪位达人帮忙解惑?
下面链表建立的书本知识,请哪位达人解惑...,小弟不胜感激!!!
#include <iostream.h>
struct link
{
int num;/*结点数据域*/
link *pleft;
link *pright;/*结点链域*/
};
void main(void)
{
link *list,*head,*tail;
list = new link;/*新建一个结点*/
cout<<"input num";
cin>>list->num;
cout<<"\n";
list->pleft = NULL;
list->pright = NULL; /*把表头结点的链域置空*/
head = list;/*这个有什么作用?请达人解惑*/
tail = list;/*这个有什么作用?请达人解惑*/
while(tail->num)/*这个循环是有什么作用的?请达人解惑*/
{
cout<<"please input num";
list = new link;/*建立新结点*/
cin>>list->num;
cout<<"\n";
list->pleft = tail;
list->pright = NULL;
tail->pright = list;
tail = list;
}
list = head;/*这个有什么作用?请达人解惑*/
while(list->pright!=NULL)
{
cout<<list->num<<" ";
list = list->prihgt;
}
cout<<list->num<<"\n";
}
[解决办法]
链表的创建过程你懂不?
head是链表的头,tail是链表的尾。
list是一个空节点,head和tail都指向list表示这个链表是空的。
那个循环是向链表中插入节点的。
最后list = head是把指针指向链表的头,用来依次输出整个链表。