代钦宸 2021-08-22 15:33 采纳率: 100%
浏览 34
已结题

A链表和B链表的合成操作

有两个序列表A和B,A中存放1.3.5.7.9,B中存放2.4.6.8.10 要求将两个链表合成1-10。怎么以代码形式提现

  • 写回答

2条回答 默认 最新

  • threecat.up 2021-08-22 15:39
    关注

    #include
    #include<stdio.h>
    #include<string.h>
    #include
    using namespace std;
    typedef struct Lnode
    {
    int data;
    Lnode *next;
    } Lnode,*linklist;
    void creat_back(linklist &a)
    {
    int n,tmp;
    linklist p,q;
    a=(linklist)malloc(sizeof(Lnode));
    a->next=NULL;
    p=a;
    scanf("%d",&n);
    for (int i=0; i<n; i++)
    {
    scanf("%d",&tmp);
    q=(linklist)malloc(sizeof(Lnode));
    q->data=tmp;
    q->next=NULL;
    p->next=q;
    p=q;
    }
    }
    void print(linklist a)
    {
    linklist p=a->next;
    while(p!=NULL)
    {
    printf("%d ",p->data);
    p=p->next;
    }
    printf("\n");
    }
    void merge_ab(linklist aa,linklist bb,linklist &c)
    {
    linklist a=aa->next,b=bb->next;
    linklist p,q;
    c=(linklist)malloc(sizeof(Lnode));
    c->next=NULL;
    p=c;
    while(a!=NULL && b!=NULL)
    {
    printf("%d %d\n",a->data,b->data);
    if (a->data < b->data)
    {
    q=(linklist)malloc(sizeof(Lnode));
    q->data=a->data;
    q->next=NULL;
    p->next=q;
    p=q;
    a=a->next;
    }
    else
    {
    q=(linklist)malloc(sizeof(Lnode));
    q->data=b->data;
    q->next=NULL;
    p->next=q;
    p=q;
    b=b->next;
    }
    }
    while(a!=NULL)
    {
    q=(linklist)malloc(sizeof(Lnode));
    q->data=a->data;
    q->next=NULL;
    p->next=q;
    p=q;
    a=a->next;
    }
    while(b!=NULL)
    {
    q=(linklist)malloc(sizeof(Lnode));
    q->data=a->data;
    q->next=NULL;
    p->next=q;
    p=q;
    b=b->next;
    }
    }
    int main()
    {
    linklist a,b,c;
    creat_back(a);
    print(a);
    creat_back(b);
    print(b);
    merge_ab(a,b,c);
    printf("zz");
    print(c);
    return 0;
    }
    输入链表,即可合并

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月30日
  • 已采纳回答 8月22日
  • 创建了问题 8月22日

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100