posts - 43,comments - 3,trackbacks - 0
 1#include "stdio.h"
 2#include "stdlib.h"
 3
 4typedef
 5struct Node
 6{
 7int data;
 8Node* next;
 9}
Node;
10
11
12Node* reverse_list(Node* header)
13{
14    Node *p, *q, *r;
15    p = q = r = 0;
16
17    q = header;
18    if(q)
19    {
20        r = q->next;
21    }

22
23    while (q)
24    {
25        q->next = p;
26        p = q;
27        q = r;
28        r = r?r->next:0;
29    }

30    return p;
31}

32
33void reverse_print(Node* header)
34{
35    if (header)
36    {
37        reverse_print(header->next);
38        printf("%d\n",header->data);
39    }

40}

41
42int main()
43{
44    Node n1, n2,n3;
45    n1.data = 1;
46    n1.next = &n2;
47
48    n2.data = 2;
49    n2.next = &n3;
50
51    n3.data = 3;
52    n3.next = 0;
53
54    reverse_print(&n1);
55    printf("================\n");
56    reverse_print(reverse_list(&n1));
57    return 0;
58}
posted on 2010-05-10 10:39 RUI 阅读(320) 评论(0)  编辑 收藏 引用 所属分类: algorithm

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理