首页 > 其他分享 >38-10

38-10

时间:2023-10-06 12:22:22浏览次数:32  
标签:10 38 LNode int pb next LinkList NULL

将一个带头结点的单链表A分解为两个带头结点的单链表A和B,使得A表中含有序号为奇数的元素,B表含有序号为偶数的元素,且保持相对顺序不变

应好好分析指针变化,可减少冗余代码!!!

#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 Split(LinkList &A)
{
    LNode *B=(LinkList)malloc(sizeof(LNode));
    B->next=NULL;
    LNode *pa=A,*pb=B,*p=A->next;
    A->next=NULL;
    int count=0;
    while(p)
    {
        count++;
        if(count%2==0)
        {
            pb->next=p;
            pb=p;    
        }
        else
        {
            pa->next=p;
            pa=p;
        }
        p=p->next;
    } 
    pa->next=NULL;
    pb->next=NULL;
    displayList(A);
    printf("\n");
    displayList(B);
}

int main()
{
    LinkList L;
    TailCreate(L);
    displayList(L);
    printf("\n");
    Split(L);
    return 0;
}

 

标签:10,38,LNode,int,pb,next,LinkList,NULL
From: https://www.cnblogs.com/simpleset/p/17744418.html

相关文章

  • 38-9
    给定一个带头结点的单链表,按递增次序输出单链表中各结点的数据元素,并释放空间。不允许使用辅助数组使用直接插入排序,将链表递增,然后进行遍历删除操作时间复杂度为O(N²)#include<stdio.h>#include<stdlib.h>typedefstructnode{intdata;structnode*next;}......
  • cf1110D. Jongmah
    cf1110D.Jongmah如果能够发现一点转化的话就简单很多比如说最后的答案里出现了三个(a,a+1,a+2),我们可以将它看作是(a,a,a),(a+1,a+1,a+1),(a+2,a+2,a+2)也就是每种三元组(除了(a,a,a))最多只会出现两次那么每种数最多有6个是个其它数组成三元组。直接dp即可#include<cstdio>#......
  • 读书笔记(20231006)
    80%的时间,投入到你最感兴趣的事情当中,20%的时间探索人生边界。身份标签、能力标签、市场标签三个维度出发,带大家重新梳理自己的定位,让大家的标签自带“吸金力”。学习了之后,一定要有输出。这个“输出”可以是写一篇完整的学习笔记,分享给别人听,也可以是,把课上的方法用起来......
  • 38-8
    给定两个链表,编写算法找出两个链表的公共结点#include<stdio.h>#include<stdlib.h>typedefstructnode{intdata;structnode*next;}LNode,*LinkList;voidTailCreate(LinkList&L){L=(LinkList)malloc(sizeof(LNode));L->next=NULL;LNo......
  • 10.4 认识Capstone反汇编引擎
    Capstone是一款开源的反汇编框架,目前该引擎支持的CPU架构包括x86、x64、ARM、MIPS、POWERPC、SPARC等,Capstone的特点是快速、轻量级、易于使用,它可以良好地处理各种类型的指令,支持将指令转换成AT&T汇编语法或Intel汇编语法等多种格式。Capstone的库可以集成到许多不同的应用程序......
  • 10.5 认识XEDParse汇编引擎
    XEDParse是一款开源的x86指令编码库,该库用于将MASM语法的汇编指令级转换为对等的机器码,并以XED格式输出,目前该库支持x86、x64平台下的汇编编码,XEDParse的特点是高效、准确、易于使用,它可以良好地处理各种类型的指令,从而更容易地确定一段程序的指令集。XEDParse库可以集成到许多不......
  • 2017年全球土地10米分辨率覆盖度数据集
    简介清华大学地球系统科学系宫鹏等基于研究组2011年以来在全球30米地表覆盖制图中获得的经验和在样本库建设方面的积累,结合10米分辨率Sentinel-2全球影像的完整存储和免费获取,开发出了世界首套10米分辨率的全球地表覆盖产品—FROM-GLC10(清华大学全球首套30米分辨率地表覆盖图称为F......
  • Windows 10 VS2015旧项目缺少MFC42D.DLL, MFCD42D.DLL, mfco42d.dll, MSVCP60D.DLL和M
    文章目录问题解决参考问题在Windows10中的VS2015找开旧项目,由于缺少MFC42D.DLL,MFCD42D.DLL,mfco42d.dll,MSVCP60D.DLL和MSVCRTD.DLL,无法调试并运行程序,进行了解决。解决下载MFC42D.DLL,MFCD42D.DLL,mfco42d.dll,MSVCP60D.DLL和MSVCRTD.DLL这些DLL文件,旧系统中是可以放在......
  • 38-6
    有一个带头结点的单链表L,设计一个算法使其元素递增有序#include<stdio.h>#include<stdlib.h>typedefstructnode{intdata;structnode*next;}LNode,*LinkList;voidTailCreate(LinkList&L){L=(LinkList)malloc(sizeof(LNode));L->next=NULL;......
  • 2023.10.5
    A记\(\displaystylef(i)=\oplus_{d|i}d\),求\(\displaystyle\oplus_{i=1}^{n}f(i)\).\(n\le10^{14}\).考虑一个数是否出现计数次,对\(\lfloor\frac{n}{x}\rfloor\)整除分块,查询区间异或和即可。点击查看代码#include<bits/stdc++.h>#definelllonglongusingnames......