标题:初次写链表程序,求帮忙检查错误
取消只看楼主
绿茶盖儿
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-351054-1-1.html




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

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