| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 701 人关注过本帖
标题:初次写链表程序,求帮忙检查错误
取消只看楼主 加入收藏
绿茶盖儿
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:363
专家分:1852
注 册:2011-9-3
结帖率:84.62%
收藏
 问题点数:0 回复次数:1 
初次写链表程序,求帮忙检查错误
新建一个链表,然后将链表逆序输出,编译连接无错,但是无法得到正确结果
#include <stdio.h>
#include <malloc.h>
#define LEN sizeof(struct data)
struct data
{
    int num;
    struct data *next;
};
struct data * creat(void);
struct data * sort(struct data *);
void print(struct data *);
void main()
{
    struct data * head;
    printf("请输入数据(输入结束请按0):\n");
    head=creat();
    printf("您输入的数据为:\n");
    print(head);
    head=sort(head);
    printf("逆序后的数据为:\n");
    print(head);
}

struct data * creat(void)
{
    int n=0;
    struct data * Head,*p1,*p2;
    p1=p2=(struct data *)malloc(LEN);
    scanf("%d",&p1->num);
    Head=NULL;
    while(p1->num!=0)
    {
        n=n+1;
        if(n==1)
            Head=p1;
        else
            p2->next=p1;
        p2=p1;
        p1=(struct data *)malloc(LEN);
        scanf("%d",&p1->num);
    }
    p2->next=NULL;
    return Head;
}

struct data * sort(struct data * Head)
{
    struct data *p,*NewHead=NULL;
    p=NewHead=Head;
    while(NewHead->next!=NULL)
    {
        NewHead=NewHead->next;
        NewHead->next=p;
        p=NewHead;
    }
    Head->next=NULL;
    return NewHead;
}

void print(struct data * Head)
{
    struct data *p;
    p=Head;
    if(Head!=NULL)
        do
        {
            printf("%6d",p->num);
            p=p->next;
        }while(p!=NULL);
    printf("\n");
}
搜索更多相关主题的帖子: 检查 链表程序 
2011-09-27 22:40
绿茶盖儿
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:363
专家分:1852
注 册:2011-9-3
收藏
得分:0 
回复 2楼 laoyang103
头插法?
2011-09-27 22:45
快速回复:初次写链表程序,求帮忙检查错误
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015219 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved