预定程序员 2023-01-28 17:32 采纳率: 68.3%
浏览 16
已结题

非空单链表一分为二,拆分函数在主函数中一直报错

问题:代码72行一直报错,是因为建表和初始化的只有L吗?应该怎么改才能正确运行?
题目:有一个由整数元素构成的非空单链表L,设计一个算法,将其拆分成两个单链表L和L2,使得L单链表中含有所有的偶数节点,B单链表中含有所有的奇数节点,且保持原来的相对次序
(注释:r1是L的尾指针,r2是L2的尾指针)

#include<stdio.h>
#include<malloc.h>
typedef int ElemTyped;
typedef struct Lnode
{
    int data;
    struct Lnode *next;
}LinkNode;
void InitList(LinkNode *&L)
{
    L=(LinkNode *)malloc(sizeof(LinkNode));
    L->next=NULL;
}
void CreatList(LinkNode *L,int a[],int n)
{
    LinkNode *r=L,*p;
    L=(LinkNode *)malloc(sizeof(LinkNode));
    for(int i=0;i<n;i++)
    {
        p=(LinkNode *)malloc(sizeof(LinkNode));
        p->data=a[i];
        r->next=p;
        r=p;
    }
    r->next=NULL;
}
void DispList(LinkNode *&L)
{
    LinkNode *p=L->next;
    while(p!=NULL)
    {
        printf("%d ",p->data);
        p=p->next;
    }
}
void cf(LinkNode *&L,LinkNode *&L2)
{
    L2=(LinkNode *)malloc(sizeof(LinkNode));
    LinkNode *r=NULL,*r1=L,*r2=L2,*p=L->next;
    L->next=NULL;
    L2->next=NULL;
    while(p!=NULL)
    {
        r=p;
        p=p->next;
        if(r->data%2==0)
        {
            r1->next=r;
            r1=r;
        }
        else
        {
            r2->next=r;
            r2=r;
        }
    }
    r1->next=r2->next=NULL;
} 
int main()
{
    LinkNode *L;
    int a[7];
    InitList(L);
    printf("请输入:");
    for(int i=0;i<7;i++)
    {
        scanf("%d",&a[i]);
    }
    CreatList(L,a,7);
    printf("请输出:");
    DispList(L);
    cf(L,L2);
    printf("请输出:");
    DispList(L);
    DispList(L2);
}

img

  • 写回答

1条回答 默认 最新

  • 社区专家-Monster-XH 2023-01-28 17:36
    关注

    请采纳:因为你在 main 函数中没有定义 L2,你现在 main 函数中先定义 L2,例如:LinkNode *L2;然后程序就可以正确运行了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月5日
  • 已采纳回答 1月28日
  • 创建了问题 1月28日

悬赏问题

  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!