Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1468029
  • 博文数量: 218
  • 博客积分: 6394
  • 博客等级: 准将
  • 技术积分: 2563
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-08 15:33
个人简介

持之以恒

文章分类

全部博文(218)

文章存档

2013年(8)

2012年(2)

2011年(21)

2010年(55)

2009年(116)

2008年(16)

分类: C/C++

2008-02-11 21:41:30

#include
typedef struct LNode//注意这里用typedef定义数据类型
{    int data;
    struct LNode *next;//注意这里有struct关键字
}LNode,*LinkList;
LinkList creat(LinkList list)
{    //尾插法建立单链表
    char flag;
    LinkList p,r;
    list=malloc(sizeof(LNode));
    r=list;
    while(1)
    {    printf("请输入数据:");
        p=malloc(sizeof(LNode));
        scanf("%d",&p->data);
        p->next=NULL;
        r->next=p;
        r=p;
        printf("是否继续输入(Y,是 N否)");
        flag=getchar();//接受回车键
        flag=getchar();
        if(flag=='N')
            break;
    }
    return list;
}
LinkList reverse(LinkList list)
{    LinkList p,q,r;
    if(list==NULL||list->next==NULL)
        return list;
    else
    {    p=list->next;
        list->next=NULL;
        r=list;
        while(p!=NULL)
        {    q=p;
            p=p->next;
            q->next=r->next;
            r->next=q;
        }
    }
    return list;
}
void output(LinkList list)
{    LinkList p=list;
    while(p->next!=NULL)
    {    printf("%d",p->next->data);
        p=p->next;
    }
}
void main()
{    LinkList list=NULL;
    list=creat(list);
    printf("原始数据是:\n");
    output(list);
    list=reverse(list);
    printf("\n转置后的数据是:\n");
    output(list);
    printf("\n");
}
阅读(1294) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~