## 将一个链表A拆分成两个,序号是奇数留在链表A中,序号是偶数保存在链表B中

```

#include

#include

//将一个链表拆分成两个,奇数留在链表A中,偶数保存在链表B中

typedef struct LNode{

int data;

struct LNode *next;

}LNode,*LinkList;

LinkList List_HeadInsert(LinkList &L);

LinkList DisCreat(LinkList &A);

void printLinkList(LinkList &L);

int main(){

LinkList A,B;

// LNode *p,*q;

A = List_HeadInsert(A);

printf("拆分前的链表A:");

printLinkList(A);

printf("\n");

B = DisCreat(A);

printf("拆分后的链表A:");

printLinkList(A);

printf("\n");

printf("拆分后的链表B:");

printLinkList(B);

}

LinkList DisCreat(LinkList &A){

//将表A中结点按序号的奇偶性分解到表A和表B中

LinkList B;

int i=0; //记录A中的结点序号

B=(LinkList)malloc(sizeof(LNode)) ; //创建B表表头

B->next=NULL; //B表的初始化

LNode *ra=A,*rb=B,*p;

p=A->next; //p为链表工作指针,指向带分解点

A->next=NULL;

while(p){

i++;

if(i%2==0) {

//序号为偶数

rb->next=p;

rb=p;

}else{

//序号为奇数

ra->next=p;

ra=p;

}

p=p->next;

}

ra->next=NULL;

rb->next=NULL;

return B;

}

LinkList List_HeadInsert(LinkList &L){

//头插法创建单链表

LNode *s;

int x;

L=(LinkList)malloc(sizeof(LNode)); //创建头结点

L->next=NULL;

scanf("%d",&x);

while(x!=-1){

s=(LNode*)malloc(sizeof(LNode));

s->data=x;

s->next=L->next;

L->next=s;

scanf("%d",&x);

}

return L;

}

void printLinkList(LinkList &L) {

LNode *p;

p=L->next;

while(p!=NULL){

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

p=p->next;

}

}

```

![](https://img.kancloud.cn/d4/c3/d4c32ff36ea890a7390cab6cb6a30273_771x267.png)

c语言链表拆分,P2 拆分链表相关推荐

  1. 数据结构实验之链表五:单链表的拆分-sdut

    数据结构实验之链表五:单链表的拆分 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 输入N个 ...

  2. 数据结构实验之链表五:单链表的拆分_JAVA

    Description 输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数.两个子链表中数据的相对次序与原链表一致. Input 第 ...

  3. 数据结构实验之链表五:单链表的拆分

    Description 输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数.两个子链表中数据的相对次序与原链表一致. Input 第 ...

  4. G - 数据结构实验之链表五:单链表的拆分

    欢迎提问,随时作答! Description 输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数.两个子链表中数据的相对次序与原链表 ...

  5. 数据结构例9.编写一个算法,将带头结点的单向链表 拆分成一个奇数链表和一个偶数链表,并分别输出

    /* 编写一个算法,将带头结点的单向链表 拆分成一个奇数链表和一个偶数链表,并分别输出 */ # include <iostream> # include <stdlib.h> ...

  6. 【数据结构和算法笔记】c语言实现顺序表和链表

    线性表的定义: 线性表中元素关系是一对一的,元素个数是有限的 序列补充: 存在唯一开始元素和终端元素,除此之外,每个元素只有唯一的前驱元素和后继元素 线性表的长度: 线性表中所含元素的个数(n),n= ...

  7. c语言单链表设计报告,单链表实验报告

    <数据结构>实验报告二 分校: 学号: 日期: 班级: 姓名: 程序名: L2311.CPP 一.上机实验的问题和要求: 单链表的查找.插入与删除.设计算法,实现线性结构上的单链表的产生以 ...

  8. C语言从已排序的链表中删除重复项(附完整源码)

    C语言从已排序的链表中删除重复项 C语言从已排序的链表中删除重复项完整源码(定义,实现,main函数测试) C语言从已排序的链表中删除重复项完整源码(定义,实现,main函数测试) #include ...

  9. 《数据结构》c语言版学习笔记——其他链表(线性表的链式存储结构Part2)

    线性表的链式存储结构 数据结构系列文章 第三章 循环链表.双向链表 文章目录 线性表的链式存储结构 前言 一.循环链表 (一)定义 (二)尾指针 二.双向链表 (一)定义 (二)代码 总结 前言 提示 ...

最新文章

  1. 深度学习入门指北——从硬件到软件
  2. 企业网络推广方案教大家在更换服务器时降低排名影响的技巧!
  3. 【面试练习题】存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10项的和
  4. Mysql数据库基础(一)基本概述、构建服务、基本管理、数据类型
  5. 三创比赛关于软件设计的策划书_关于大学生创业和电商创业大赛
  6. servlet中doPost()和doGet()
  7. 几种线程池的实现算法分析
  8. 996.ICU凉凉了!
  9. ShareX(截图工具) 绿色版,功能异常强大
  10. 100种网站推广方法全集
  11. 企业即时通讯行业评测——imo VS RTX
  12. 同一个tomcat部署多个项目
  13. 运营经验|怎么把app运营好
  14. Balsamiq新的感觉
  15. 2023软件测试最难求职季,哪些测试技能更容易拿到offer?
  16. html贝塞尔曲线在线,【HTML+js+纯前端】三次方贝塞尔曲线手工拟合小工具
  17. 华为ensp模拟器占用CPU高问题处理
  18. BZOJ 4327 【JSOI 2012】 玄武密码 AC自动机+dfs
  19. LINUX学习网址精选
  20. MySQL数据库事务基本介绍、四大特征、隔离界别的使用方法

热门文章

  1. java poi excel导出2003版改成2007版本的时候报错
  2. 墨言教育:黄鹤楼1800年历史主题海报邀请展:传递历史文化积淀和新时代风采
  3. 尼日利亚4g频段_4G全球频段划分及主要运营商对应表2015版.xls
  4. MacOS Monterey 12.1 (21C52) OC 0.7.6 / Cl 5142 / PE 三分区原版黑苹果镜像
  5. Real-time signal
  6. 【keepass】密码管理软件keepass的安全风险分析,如何在使用keepass的过程中避免泄露数据库信息和密码?
  7. 终于,字节跳动要取消大小周了,我 1.7 万人的票圈都快炸了!
  8. Mac电脑怎么远程桌面连接?
  9. Element学习使用
  10. 控制算法简析1——PID和负反馈的数学原理