m0_73928344 2023-05-16 11:38 采纳率: 70%
浏览 33
已结题

c语言动态链表编程问题求解

img

img

请问各位老哥 这下面代码哪里出错了 真的看不出来了(凋谢)


#include<stdio.h>
#include<malloc.h>
struct linknode
{
    int a;
    struct linknode *next;
};
struct linknode *creatnode()
{
    struct linknode *head;
    head=(struct linknode *)malloc(sizeof(struct linknode));
    head=NULL;
    return head;
}
void insertfirst(struct linknode *head)
{
    struct linknode *p1,*p2,*node;
    int num;
    scanf("%d",&num);
    node=(struct linknode*)malloc(sizeof(struct linknode));
    node->a=num;
    node->next=NULL;
    if(head==NULL)
    {
        head=node;
    }
    else
    {
        p1=head;
        head=node;
        node->next=p1;
    }
}
void insertlast(struct linknode *head)
{
    struct linknode *p1,*p2,*node;
    int num;
    scanf("%d",&num);
    node=(struct linknode*)malloc(sizeof(struct linknode));
    node->a=num;
    node->next=NULL;
    p1=head;
    while(p1->next!=NULL)
    {
        p2=p1;
        p1=p2->next;
    }
    p1->next=node;
}
void displink(struct linknode *head)
{
    struct linknode *p;
    p=head;
    while(p!=NULL)
    {
        printf("%d",p->a);
        p=p->next;
    }
}
void freelink(struct linknode *head)
{
    while(head!=NULL)
    {
        free(head);
    }
    head=head->next;
}
int main()
{
    int n;
    scanf("%d",&n);
    struct linknode *head;
    head=creatnode();
    int i;
    for(i=1;i<=n;i++)
    {
        if(i%2!=0)
        {
            insertfirst(head);
        }
        else
        {
            insertlast(head);
        }
    }
    displink(head);
    freelink(head);
    return 0;
}
  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2023-05-16 11:45
    关注

    13行改成head->next = NULL啊。malloc刚分配了head空间,你接着就把head设置为空啊?
    69行也很奇怪啊,head不是空,你就free掉head,那head还是不为空啊,你这就死循环了

    struct linknode *node;
    while(head!= NULL)
    {
        node = head->next;
        free(head);
        head = node;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月24日
  • 已采纳回答 5月16日
  • 创建了问题 5月16日

悬赏问题

  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,
  • ¥15 angular项目错误