to7str

   ::  ::  :: 联系 ::  :: 管理
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct node
{
    int data;
    struct node *next;
};

struct node *pHead = NULL;

void display(void )
{
    struct node *p;
    p = pHead;
    while(NULL != p)
    {
        printf("%d  ", p->data);
        p = p->next;
    }
    printf("\n\r");
}

void insert(struct node *pNode)
{
    struct node *p;
#if 1
    if(NULL == pHead)
    {
        pHead = pNode;
        pHead->next = NULL;
    }
    else
    {
        p = pHead;
        while(NULL != p->next)
        {
            p = p->next;
        }
        p->next = pNode;
        pNode->next = NULL;
    }
#else
    if(NULL == pHead)
    {
        pHead = pNode;
        pHead->next = NULL;
    }
    else
    {
        pNode->next = pHead;
        pHead = pNode;
    }
#endif    
    return;
}

void list_Reversion(void )
{
    struct node *pre, *cur, *ne;
    pre = pHead;
    cur = pHead->next;
    
    while(NULL != cur)
    {
        ne = cur->next;
        cur->next = pre;
        pre = cur;
        cur = ne;
    }
    pHead->next = NULL;
    pHead = pre;
}

int main(void )
{
    int i;
    struct node *p;
    for(i = 0; i < 11; i++)
    {
        p = malloc(sizeof(struct node));
        p->data = i;
        insert(p);
    }
    display();
    list_Reversion();
    display();
    return 0;
}
posted on 2012-10-15 23:45  to7str  阅读(185)  评论(0编辑  收藏  举报