ZBLOG

HLink Creatlist(HLink &L) { int x,y; HLink head; head = (HLink)malloc(sizeof(LNode)); int flag = 1; HLink last = head; while(true) { printf("请输入式第%d个系数和指数,(输入404停止插入数据进链表):",flag); scanf("%d %d",&x,&y);

这段代码有一个潜在的问题,即没有对头节点进行初始化。在创建头节点后,应该将其next指针设置为NULL。修改代码如下:

HLink Creatlist(HLink &L) {
    int x, y;
    HLink head;
    head = (HLink)malloc(sizeof(LNode));
    head->next = NULL; // 添加此行进行头节点初始化
    int flag = 1;
    HLink last = head;
    while (true) {
        printf("请输入第%d个系数和指数,(输入404停止插入数据进链表):", flag);
        scanf("%d %d", &x, &y);
        if (x == 404 || y == 404) {
            break;
        }
        HLink a = (HLink)malloc(sizeof(LNode));
        a->x = x;
        a->y = y;
        a->next = NULL;
        last->next = a;
        last = a;
        flag++;
    }
    return head;
}

void Print(HLink L) {
    HLink p = L->next;
    while (p != NULL) {
        printf("(%d, %d) ", p->x, p->y);
        p = p->next;
    }
    printf("\n");
}

这样修改后,可以正确地创建链表并打印输出。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=10419

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?