m0_63853120 2022-09-30 21:01 采纳率: 66.7%
浏览 27
已结题

两个有序列表合并少一个数



```c



#include <stdlib.h>

typedef int DataType ;

typedef struct LNODE

{

  DataType data;/*data数据项用于存放结点的数据值*/

  struct LNODE *next; /*next数据项存放下一个结点的指针*/



}LNODE;



LNODE* initl()

{

    LNODE *head;

    head=(LNODE*)malloc(sizeof(LNODE));    /*为头结点申请空间*/

     if(head!=NULL) /*将头结点的指针域初始化为NULL*/

         head->next=NULL;

    return (head);

 }

LNODE* creatL1()/*建立一个头为head的带头结点的单链表*/

{

    LNODE *head,*p,*s;

    DataType x;

    head=initl();               /*链表初始化*/

    p=head;

    scanf("%d",&x);

    while(x!=-1)

    {

        s=(LNODE*)malloc(sizeof(LNODE));  /*申请新结点空间*/

        s->data=x;      /*给新结点的数据域赋值*/

        s->next=NULL;   /*将新结点的指针域初始化为空*/

        p->next=s;      /*将新结点链接到表尾*/

        p=s;            /*新结点成为新链表的尾结点*/

        scanf("%d",&x);

  }

  return head;

}

 void output(LNODE *head)  /*输出节点数据*/

 {

     LNODE *p;

     p=head->next;

     while(p!=NULL)

     {

         printf("%d ",p->data);

         p=p->next;

     }

 }

 /*以下函数完成升序合并两上单链表*/

void Ascendingmerge(LNODE *head1,LNODE *head2,LNODE *head3)

{LNODE *p;
LNODE *q;
LNODE *k;
k=head3;
p=head1->next;
q=head2->next;

while(p!=NULL&&q!=NULL)
{
    if(p->data<q->data)
    {k->next=p;
     p=p->next;
    }
    else
    {
        k->next=q;
        q=q->next;
    }
    k=k->next;
}
if(p!=NULL)
{   k->next=p;

}
if(q!=NULL)
{
    k->next=q;

}




k->next=NULL;


 }



int main()

{

    LNODE *head1,*head2,*head3;
    head3=(LNODE*)malloc(sizeof(LNODE));
    head3->next=NULL;

    head1=creatL1();

    head2=creatL1();

    Ascendingmerge(head1,head2,head3);

        printf("合并后的数据为:\n");

        output(head3);

    return 0;

}
  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-09-30 21:33
    关注

    void Ascendingmerge(LNODE *head1,LNODE *head2,LNODE *head3) 函数里,第129行:k->next=NULL; 这句多余,删除即可。

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

报告相同问题?

问题事件

  • 系统已结题 10月9日
  • 已采纳回答 10月1日
  • 创建了问题 9月30日

悬赏问题

  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错