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行,链接,数据输入,置空,尾指针后移,顺序可变,后移一定要放在链接后面
单链表的初始化和创建(尾插法)
时间: 2024-09-29 18:28:37