C语言创建单向链表

步骤

1、在创建链表前首先要定义一个结构体,此结构体包含数据域和指针域,数据域和指针域均可以有多个,该结构体实际上就是结点(Node);

2、链表的建立至少需要三个结点,头结点、尾结点、待插入结点,这里分别用tHead、tLast、tTemp来表示三个结点;

3、头结点作为链表的标识,在链表创建时首先要给tHead分配空间(使用malloc申请空间);

4、链表每插入新结点tTemp时,都需要给新结点分配一个新的空间;

5、值得注意的是,建立第一个结点时,直接让tHead指向tTemp,并让tLast指向tHead即可,此时三个结点的关系如图所示,tHead和tLast此时都为第一个结点;

 

 

6、第一个结点创建完成后,新增结点tTemp直接挂在tLast后面,即tLast->next = tTemp,再将tLast指向tTemp(这一步操作就是将新增的tTemp变成了链表的表尾),最后将tLast->next指向NULL即可;

C语言实现代码如下:

 1 #include <stdio.h>
 2 #include <malloc.h>
 3 
 4 typedef struct Node
 5 {
 6     int Value;
 7     struct Node *Next;
 8 }Node_t;
 9 
10 
11 void LinkedListCreate(void)
12 {
13     int tNum = 0;
14     int tValue = 0;
15     Node_t *tTemp = NULL;//待插入节点
16     Node_t *tHead = NULL;//头结点
17     Node_t *tLast = NULL;//尾结点
18   
19     printf("请输入新建链表节点数:");
20     scanf("%d",&tNum);
21     
22     while (tNum)
23     {     
24         tTemp = (Node_t*)malloc(sizeof(struct Node));//为结点分配空间
25         printf("请输入第一个节点数据内容(阿拉伯数字):");
26         scanf("%d",&tValue);
27         
28         tTemp->Value = tValue;
29         
30         if (tHead == NULL)
31         {
32             tHead = tTemp;
33             tLast = tHead;
34         }else{
35             tLast->Next = tTemp;
36             tLast = tTemp;
37             tLast->Next = NULL;
38             /* code */
39         }
40         tNum--;
41         /* code */
42     }
43     printf("节点数据内容为:");
44     while (tHead)
45     {
46         printf("%d  ",tHead->Value);
47         tHead = tHead->Next;
48         /* code */
49     }
50 }
51 
52 
53 void main()
54 {
55     LinkedListCreate();
56 }

 

posted @ 2022-05-23 21:02  伽椰子真可爱  阅读(248)  评论(0编辑  收藏  举报