把看算法时,写的测试程序记录下来,方便以后查阅,也方便大家参考。
1 #include <stdio.h>
#include <stdlib.h>
2
3 typedef struct linklist{
4 int data;
5 struct linklist *next;
6 }linklist;
7
8 linklist* reverse_ll(linklist *p)
9 {
10 linklist *q = 0, *r = 0;
11
12 if (0 == p)
13 return 0;
14
15 while(0 != p)
16 {
17 q = p->next;
18 p->next = r;
19 r = p;
20 p = q;
21 }
22 return r;
23 }
24
25 void show_ll(linklist *p)
26 {
27 if (0 == p)
28 return;
29
30 while(0 != p)
31 {
32 printf("%d/t", p->data);
33 p = p->next;
34 }
35 printf("/n");
36 }
37
38 int main()
39 {
40 linklist pHead;
41 linklist *q = 0;
42 int i;
43 for(i = 0; i < 10; i++)
44 {
45 linklist *p = malloc(sizeof(linklist));
46 p->data = i;
47 p->next = 0;
48
49 if (0 == q)
50 pHead.next = p;
51 else
52 q->next = p;
53
54 q = p;
55 }
56
57 show_ll(pHead.next);
58
59 linklist *t = reverse_ll(pHead.next);
60 show_ll(t);
61 return 0;
62 }
1 #include <stdio.h>
#include <stdlib.h>
2
3 typedef struct linklist{
4 int data;
5 struct linklist *next;
6 }linklist;
7
8 linklist* reverse_ll(linklist *p)
9 {
10 linklist *q = 0, *r = 0;
11
12 if (0 == p)
13 return 0;
14
15 while(0 != p)
16 {
17 q = p->next;
18 p->next = r;
19 r = p;
20 p = q;
21 }
22 return r;
23 }
24
25 void show_ll(linklist *p)
26 {
27 if (0 == p)
28 return;
29
30 while(0 != p)
31 {
32 printf("%d/t", p->data);
33 p = p->next;
34 }
35 printf("/n");
36 }
37
38 int main()
39 {
40 linklist pHead;
41 linklist *q = 0;
42 int i;
43 for(i = 0; i < 10; i++)
44 {
45 linklist *p = malloc(sizeof(linklist));
46 p->data = i;
47 p->next = 0;
48
49 if (0 == q)
50 pHead.next = p;
51 else
52 q->next = p;
53
54 q = p;
55 }
56
57 show_ll(pHead.next);
58
59 linklist *t = reverse_ll(pHead.next);
60 show_ll(t);
61 return 0;
62 }