首页 > 其他 > 详细

顺序结构的单链表实现

时间:2021-08-29 23:47:55      阅读:14      评论:0      收藏:0      [点我收藏+]
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 typedef struct Node {
 5     int data;
 6     struct Node *next;
 7 } Node, *LinkList;
 8 
 9 LinkList initList() {
10     LinkList L = (LinkList *) malloc(sizeof(LinkList));
11     if (L == NULL) {
12         return -1;
13     }
14     L->next = NULL;
15     return L;
16 }
17 
18 int ListEmpty(LinkList L) {
19     if (L->next)
20         return 1;
21     else
22         return 0;
23 }
24 
25 void DestroyList(LinkList L) {
26     LinkList P;
27     while (L) {
28         P = L;
29         L = L->next;
30         free(P);
31     }
32 }
33 
34 void InsertList(LinkList L, int num) {
35     LinkList pNew = (LinkList *) malloc(sizeof(LinkList));
36     pNew->next = L->next;
37     pNew->data = num;
38     L->next = pNew;
39 }
40 
41 void printList(LinkList L) {
42     LinkList P = L->next;
43     while (P) {
44         printf("%d\n", P->data);
45         P = P->next;
46     }
47 }
48 
49 void CleanList(LinkList L) {
50     LinkList P, Q;
51     P = L->next;
52     while (P) {
53         Q = P->next;
54         free(P);
55         P = Q;
56     }
57     L->next = NULL;
58 }
59 
60 int main() {
61     LinkList pHead = initList();
62     if (ListEmpty(pHead)) {
63         printf("表不为空\n");
64     } else {
65         printf("表空\n");
66     }
67     for (int i = 0; i < 5; ++i) {
68         InsertList(pHead, i);
69     }
70     printList(pHead);
71     if (ListEmpty(pHead)) {
72         printf("表不为空\n");
73     } else {
74         printf("表空\n");
75     }
76     CleanList(pHead);
77     if (ListEmpty(pHead)) {
78         printf("表不为空\n");
79     } else {
80         printf("表空\n");
81     }
82     return 0;
83 }

 

顺序结构的单链表实现

原文:https://www.cnblogs.com/old-horse/p/15201885.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!