回 帖 发 新 帖 刷新版面

主题:[原创]链表输出问题(在线等)

#include <stdio.h>
#include <stdlib.h>
typedef struct linknode
{
    int data;
    struct linknode *next;
    
}node;
node * create(node *head)
{
    node *p,*s;
    int x,cycle=1;
    head=(node *)malloc(sizeof(node));
    p=head;
    while(cycle)
    {
        scanf("%d",&x);
        if(x!=0)
        {
            s=(node*)malloc(sizeof(node));
            s->data=x;
            s->next=s;
            p=s;            
        }
        else
            cycle=0;
          }
    p->next=NULL;
    //     p=head;
    ////     head=head->next;
    return head;
    
    
    
}
void display(node *head)

{
    
    node *p;
    p=head;
    while(p!=NULL)  
    {
        printf("%d",p->data);
        p=p->next;
    }
}
void main()
{  
    node *link;
    node *m;
    m= create(link);
     display(m);

    
}
我是刚不久学数据结构。写了一个简单的链表。可是输出没有得到想要的结果!!
麻烦帮我看一下啊!!

回复列表 (共1个回复)

沙发

create(link);最好别用子程序,否则必须用引用类型node create(node *&head)
创建的表才会传回主程序.
单个输出没什么问题.
void display(node *head)

{
    
    node *p;
    p=head->next;/*头结点一般没数据*/
    while(p!=NULL)  
    {
        printf("%d",p->data);
        p=p->next;
    }
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册