单链表的初始化和创建(尾插法)

 1 #include<stdlib.h>
 2 #include<stdio.h>
 3 typedef struct Node
 4 {
 5     int data;
 6     struct Node *next;
 7 }Node,*LinkList;
 8 
 9 void initList(LinkList *L)
10 {
11    (*L) = NULL;
12    printf("初始化成功\n");
13 }
14 
15 LinkList creatList(int n)
16 {
17     LinkList l,h,s;//l为尾指针,h为头指针,s为工作指针
18     int i = 0;
19     if((h=(LinkList)malloc(sizeof(Node)))==NULL)
20     {
21         printf("不能分配空间!");
22         exit(0);
23     }
24     h->data = 0;
25     h->next = NULL;
26     l=h;
27     for(;i<n;i++)
28     {
29         if((s=(LinkList)malloc(sizeof(Node)))==NULL)
30         {
31             printf("不能分配空间!");
32             exit(0);
33         }//创建出节点
34         l->next = s;//与尾节点做链接
35         printf("请输入第%d个数字",i+1);
36         scanf("%d",&(s->data));//输入数据
37         s->next = NULL;//置空
38         l=s;//尾指针后移
39         
40     }
41     return h;
42 }
43 
44 int main()
45 {
46     LinkList listList = NULL;
47     initList(&listList);
48     listList = creatList(5);
49     return 0;
50 }

创建的时候,34-38行,链接,数据输入,置空,尾指针后移,顺序可变,后移一定要放在链接后面

posted @ 2014-07-12 14:08  董文博  阅读(1359)  评论(0编辑  收藏  举报