typedef sturct node { int data; struct node *next; }*List,Node;
第一种:先初始化,再创建链表。在初始中,让头结点的next为NULL;
void Init(List &L) { L=(List)malloc(sizeof(Node)); if(!L) exit(-1); L->next=NULL; }
第二种:不初始化,直接创建,又分为以下几种。
<1>尾插法,假如创建n个结点。
void creat(List &L,int n) /*尾插法*/ { int e,i; List p,s; L=(List)malloc(sizeof(Node)); p=L; for(i=0;i<n;i++) { s=(List)malloc(sizeof(Node)); cin>>e; s->data=e; p->next=s; p=s; } p->next=NULL; /*尾部指向空*/ }
<2>头插法:不需要额外的指针、
void creat(List &L,int n)/*头插法*/ { int e,i; List s; L=(List)malloc(sizeof(Node)); L->next=NULL; for(i=0;i<n;i++) { s=(List)malloc(sizeof(Node)); cin>>e; s->data=e; s->next=L->next; L->next=s; } }
原文:http://www.cnblogs.com/tinaluo/p/5280920.html