标题:关于链表问题,不知道哪里错了。。
只看楼主
Kevimine
Rank: 1
等 级:新手上路
帖 子:5
专家分:5
注 册:2011-8-3
结帖率:100%
已结贴  问题点数:30 回复次数:3 
关于链表问题,不知道哪里错了。。
程序代码:
#include <stdio.h>
#include <malloc.h>
typedef struct node
{
    int data;
    struct node *next;
}*link;

void create(link *l)
{
    int i,n;
    link p,q=*l;
    (*l)=(link)malloc(sizeof(struct node));
    (*l)->next=NULL;
    printf("请输入链表的大小");
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        p=(link)malloc(sizeof(struct node));
        printf("请输入数据");
        scanf("%d",&p->data);
        p->next=NULL;
        q->next=p;
        q=p;
    }
}

void print(link l)
{
    l=l->next;
    while(l)
    {
        printf("%d ",l->data);
        l=l->next;
    }
}
int main()
{
    link L;
    create(&L);
    print(L);
}
搜索更多相关主题的帖子: create 
2011-08-18 13:40
Kevimine
Rank: 1
等 级:新手上路
帖 子:5
专家分:5
注 册:2011-8-3
得分:0 
2011-08-18 13:46
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
得分:30 
程序代码:
link p, q = *l;
(*l) = (link) malloc(sizeof(struct node));    // 这条语句执行后 *l 的值会改变,改变 q->next 不会对 (*l)->next 产生影响
// 改成这样:
link p, q;
q = (*l) = (link) malloc(sizeof(struct node));
2011-08-18 13:54
Kevimine
Rank: 1
等 级:新手上路
帖 子:5
专家分:5
注 册:2011-8-3
得分:0 
以下是引用voidx在2011-8-18 13:54:48的发言:

link p, q = *l;
(*l) = (link) malloc(sizeof(struct node));    // 这条语句执行后 *l 的值会改变,改变 q->next 不会对 (*l)->next 产生影响
// 改成这样:
link p, q;
q = (*l) = (link) malloc(sizeof(struct node));
哎呀、我错了。。。学了一天链表都有点头晕了。。。
2011-08-18 13:57



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




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

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