08 链表

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 
 4 //单链表结构体
 5 struct LinkList {
 6     int data; 
 7     struct LinkList* next;
 8 }link;
 9 
10 //初始化有头结点的链表
11 struct LinkList* initLinkHead() {
12     struct LinkList* head = (struct LinkList*)malloc(sizeof(link)); //申请头结点
13     head->data = -1; //头结点的数据域是 -1
14     head->next = NULL; //头结点的指针域是 NULL
15     return head;
16 }
17 
18 
19 void main() {
20 
21     struct LinkList* head = initLinkHead(); //获取初始化后的头结点
22     struct LinkList* p = head; //初始时把头节点赋给p
23     struct LinkList* r = head; //初始时把头节点同时赋给r
24 
25     for (int i = 1;i < 5;i++) {
26         p = (struct LinkList*)malloc(sizeof(link)); // p 不断申请下一个结点
27         p->data = i; //不断给p的数据域填充数据 10 20 30 40 50
28         //printf("%d  ", p->data);
29         p->next = (p + i);
30         r = p; //把p刚刚申请的结点的指针域赋给r,让r始终是最后一个结点的指针域
31         printf("%d ", r->data);
32         
33     }
34 }
35 
36     

猜你喜欢

转载自www.cnblogs.com/shanlu0000/p/12451507.html
08