实验9-8 通讯录排序

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 
 5 typedef struct node
 6 {
 7     char name[11];
 8     char birthday[9];
 9     char phone[18];
10     struct node *next;
11 } NODE, *LINK;
12 void AddNewNode(LINK head, int n);
13 void PrintList(LINK head);
14 void cleanList(LINK head);
15 int main(void)
16 {
17     int n;
18     LINK head;
19 
20     head = (LINK)malloc(sizeof(NODE));
21     head->next = NULL;
22 
23     scanf("%d", &n);
24     AddNewNode(head, n);
25     PrintList(head);
26     cleanList(head);
27 
28     return 0;
29 }
30 void AddNewNode(LINK head, int n)
31 {
32     LINK tail = head;
33     LINK p, q, newNode;
34 
35     for (int i = 0; i < n; i++)
36     {
37         newNode = (LINK)malloc(sizeof(NODE));
38         scanf("%s %s %s", newNode->name, newNode->birthday, newNode->phone);
39         newNode->next = NULL;
40         if (i == 0)
41         {
42             tail->next = newNode;
43             tail = newNode;
44         }
45         else
46         {
47             q = head;
48             p = head->next;
49             while (p != NULL)
50             {
51                 if (strcmp(newNode->birthday, p->birthday) < 0)
52                 {
53                     q->next = newNode;
54                     newNode->next = p;
55                     break;
56                 }
57                 else
58                 {
59                     q = p;
60                     p = p->next;
61                 }
62             }
63             if (p == NULL)
64             {
65                 q->next = newNode;
66             }
67         }
68     }
69 }
70 void PrintList(LINK head)
71 {
72     LINK p = head->next;
73 
74     while (p != NULL)
75     {
76         printf("%s %s %s
", p->name, p->birthday, p->phone);
77         p = p->next;
78     }
79 }
80 void cleanList(LINK head)
81 {
82     LINK p;
83 
84     while (head != NULL)
85     {
86         p = head->next;
87         free(head);
88         head = p;
89     }
90 }
原文地址:https://www.cnblogs.com/2018jason/p/13275641.html