首页 > 其他分享 >39-13

39-13

时间:2023-10-06 20:34:43浏览次数:27  
标签:LinkList 39 LNode 13 next pb pa printf

假设有两个按元素值递减次序排列的线性表,均以单链表的形式存储,编写算法,将这两个单链表合成一个按值递减的单链表,使用原链表的结点。

没啥好说的,这个有手就行

#include <stdio.h>
#include <stdlib.h>

typedef struct node{
    int data;
    struct node *next;
}LNode,*LinkList;

void TailCreate(LinkList &L)
{
    L=(LinkList)malloc(sizeof(LNode));
    L->next=NULL;
    LNode *p,*r=L;
    int x;
    scanf("%d",&x);
    while(x!=999)
    {
        p=(LNode*)malloc(sizeof(LNode));
        p->data=x;
        p->next=NULL;
        r->next=p;
        r=p;
        scanf("%d",&x);
    }
}

void displayList(LinkList L)
{
    LNode *p=L->next;
    while(p!=NULL)
    {
        printf("%d  ",p->data);
        p=p->next;
    }
}

void Merge(LinkList &A,LinkList &B)
{
    LNode *pa=A->next,*pb=B->next,*r;
    A->next=NULL;
    while(pa&&pb)
    {
        if(pa->data<=pb->data)
        {
            r=pa->next;
            pa->next=A->next;
            A->next=pa;
            pa=r;
        }
        else
        {
            r=pb->next;
            pb->next=A->next;
            A->next=pb;
            pb=r;
        }        
    } 
    if(pb)
        pa=pb;
    while(pa)
    {
        r=pa->next;
        pa->next=A->next;
        A->next=pa;
        pa=r;
    }
    free(B);
}

int main()
{
    LinkList A,B;
    TailCreate(A);
    displayList(A);
    printf("\n");
    TailCreate(B);
    displayList(B);
    printf("\n");
    Merge(A,B);
    displayList(A);
    printf("\n");
    return 0;
}

 

标签:LinkList,39,LNode,13,next,pb,pa,printf
From: https://www.cnblogs.com/simpleset/p/17744967.html

相关文章

  • CF131D Subway 题解
    题目传送门前置知识强连通分量|最短路解法考虑用Tarjan进行缩点,然后跑最短路。缩点:本题的缩点有些特殊,基于有向图缩点修改而得,因为是无向图,所以在Tarjan过程中要额外记录一下从何处转移过来,防止在同一处一直循环。基环树上找环还有其他方法,这里仅讲解使用Tarjan求......
  • 2023-2024-1 学号20231315《计算机基础与程序设计》第二周学习总结
    学期:2023-2024-1学号:20231315《计算机基础与程序设计》第二周学习总结作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业要求在哪里2023-2024-1《计算机基础与程序设计》这个作业的目标学习计算机科学概论第1章和《C语言程序设计》第1......
  • 升级Lync Server 2013到Skype for Business 2019(二)
    写在前面从本章开始,将进入到整个LyncServer2013升级到SkypeforBusiness2019升级项目的详细实施部分。本章将介绍SkypeforBusiness2019前端服务器安装。前端服务器安装先决条件安装打开WindowsPowerShell。确保已插入WindowsServer2019安装介质。运行以下命令Add-Window......
  • 每个字符串从'/'到最后的内容都被替换为''
    list_1=['产品类型','后续机台','重量','可生产温度/℃','预计自然冷却时间/h','预计单面风机风机强冷时间/h','预计双面风机风机强冷时间/h']#请使用正则表达式给出pattern使得每个字符串从'/'到最后的内容都被替换为'',最终结果为['产品类型......
  • QT5.14: 打开文件出错warning: format '%s' expects argument of type 'char*'
    错误提示信息:D:\Demo\QT5.14\CH5\CH501\imgprocessor.cpp:158:warning:format'%s'expectsargumentoftype'char*',butargument2hastype'QChar*'[-Wformat=]printf("fileName:%s\n",filename.data());原函数代码:......
  • P4133 [BJOI2012]最多的方案 题解
    P4133双倍经验发现斐波那契数列增长极快,不到\(100\)项就超过了\(10^{18}\),搜索树也极为稀疏,可以考虑搜索。爆搜肯定会超时,考虑优化:可行性剪枝。记忆化,去除重复的计算。改变搜索的顺序,因为先考虑小元素的话,会有较多的无用的搜索,且小元素较灵活,更容易凑到\(x\),故可......
  • 【整除分块】【DP】ABC239Ex Dice Product 2 题解
    ABC239H简单题。令\(f_i\)表示乘到\(\gei\)的期望。容易得到\(f_i=\dfrac{\sum\limits_{j=1}^{n}f_{\lceil\frac{i}{j}\rceil}}{n}\)。将\(f_i\)移到同一边,去掉系数,有\(f_i=\dfrac{n\sum\limits_{j=2}^{n}f_{\lceil\frac{i}{j}\rceil}}{n-1}\)。提出\(\frac{n-1}{n......
  • Luogu CF1133B 题解
    这道题其实很简单要让两数和为\(k\)的倍数,需要满足以下两条件之一:两数都是\(k\)的倍数两数的余数和为\(k\)因此,我们可以先统计出余数再按上述条件算出共有多少组,即可得到答案注意:当\(k\)为偶数时,余数为\(k/2\)的数要两两配对,不要多算这里统计的是组数,......
  • 学年2023-2024-1 学号 20231310《计算机基础与程序设计》第二周学习总结
    作业信息这个作业属于哪个课程https://www.cnblogs.com/rocedu/p/9577842.html这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK02这个作业的目标《计算机科学概论》和《C语言程序设计》第1章并完成云班课测试作业正文https://www.cn......
  • C error:deprecated conversion from string constant to 'char*' [-Wwrite-strings]
    问题描述解决C++中[Warning]deprecatedconversionfromstringconstantto'char*'[-Wwrite-strings]char*string="aaabbbcc";//warning的原因是字符串常量存放在const内存区...原因主程序初始化字符串,是字符串常量,该字符串的内存分配在全局的const内存区。......