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

Input
第一行输入整数N;;
第二行依次输入N个整数。

Output
第一行分别输出偶数链表与奇数链表的元素个数;
第二行依次输出偶数子链表的所有数据;
第三行依次输出奇数子链表的所有数据。

Sample

Input
10
1 3 22 8 15 999 9 44 6 1001
Output
4 6
22 8 44 6
1 3 15 999 9 1001
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <math.h>
using namespace std;
//定义结构体
typedef struct node
{int data;struct node *next;
} Node;
//创建链表
Node *creat(int n)
{Node *tail,*p,*head;head=(Node *)malloc(sizeof(Node));head->next=NULL;tail=head;for(int i=1; i<=n; i++){p=(Node *)malloc(sizeof(Node));scanf("%d",&p->data);tail->next=p;tail=p;p->next=NULL;}return head;
}
//输出链表
void ouput(Node *head)
{Node *p;p=head->next;while(p->next!=NULL){printf("%d ",p->data);p=p->next;}printf("%d\n",p->data);
}
//链表拆分
Node *spilt(Node *head1)
{int cnt1=0,cnt2=0;//定义计数变量Node *p,*head2,*tail1,*tail2;head2=(Node *)malloc(sizeof(Node));//新开一个头节点head2->next=NULL;tail2=head2;p=head1->next;tail1=head1;//为拆分做准备head1->next=NULL;while(p){if(p->data%2==0)//偶数时{tail1->next=p;//改变指向后,tail更新tail1=p;cnt1++;}else{tail2->next=p;tail2=p;cnt2++;}p=p->next;//继续处理下一个}tail1->next=NULL;//结尾保证置空,不乱指tail2->next=NULL;printf("%d %d\n",cnt1,cnt2);return head2;
}int main()
{int n;Node *head1,*head2;cin>>n;head1=creat(n);head2=spilt(head1);ouput(head1);ouput(head2);return 0;
}

G - 数据结构实验之链表五:单链表的拆分相关推荐

  1. c语言判断顺序链表是否为空,数据结构之线性表(五)——单链表(2 初始化,判断空表,销毁,清空,求表长)...

    1.单链表(带头结点)的初始化 即,构造一个空表,如下图, 算法步骤: 1.生成新结点作头结点,用头指针L指向头结点. 2.将头指针的指针域置空. 算法描述: Status InitList_L(Li ...

  2. 基于Python的数据结构实验——顺序表与单链表建立与操作(附详细代码和注释)

    1.创建一个名为 prac02_01.py 的文件,在其中编写一个顺序表的类,该类必须包含顺 序表的定义及基本操作,并通过以下步骤测试基本操作的实现是否正确,给出运行结果. (1)初始化一个顺序表 S ...

  3. 数据结构(05)— 线性单链表实战

    1. 设计思路 本项目的实质是完成对考生信息的建立.查找.插入.修改.删除等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结 ...

  4. 「数据结构 | 链表」单链表、双向链表节点操作演示动画

    目录 1. 什么是链表 2. 链表数据结构 2.1 单链表数据结构(Java) 2.2 双向链表数据结构(Java) 3. 单链表操作动画 3.1 新增节点 3.2 删除节点 4. 双向链表操作动画 ...

  5. 数据结构(08)— 线性单链表基本操作

    1. 线性单链表数据结构 // 假定每个结点的类型用 SNode 表示 typedef struct SNodeTag {int data; // 所存储的数据元素SNodeTag *next; // ...

  6. python单链表实现具体例子_Python实现数据结构线性链表(单链表)算法示例

    本文实例讲述了Python实现数据结构线性链表(单链表)算法.分享给大家供大家参考,具体如下: 初学python,拿数据结构中的线性链表存储结构练练手,理论比较简单,直接上代码. #!/usr/bin ...

  7. 【数据结构与算法】 01 链表 (单链表、双向链表、循环链表、块状链表、头结点、链表反转与排序、约瑟夫环问题)

    一.线性表 1.1 概念与特点 1.2 线性表的存储结构 1.3 常见操作 1.4 应用场景 二.链表 2.1 链表简介 2.2 单向链表(单链表) 2.21 基本概念 2.22 单链表基本操作 2. ...

  8. 数据结构学习(C++)——单链表应用(一元多项式【1】) (转)

    数据结构学习(C++)--单链表应用(一元多项式[1]) (转)[@more@] 总算到了这里,这时,你会很得意的说,辛辛苦苦学的单链表总算知道能干点什么了.但是很不幸,如果你和我一样看的是那本书,到 ...

  9. 数据结构5: 链表(单链表)的基本操作及C语言实现

    逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储. 由于分散存储,为了能够体现出数据元素之间的逻辑关 ...

  10. 数据结构开发(6):静态单链表的实现

    0.目录 1.单链表的遍历与优化 2.静态单链表的实现 3.小结 1.单链表的遍历与优化 问题: 如何遍历单链表中的每一个数据元素? 当前单链表的遍历方法: 遗憾的事实: 不能以线性的时间复杂度完成单 ...

最新文章

  1. 读书笔记-单元测试艺术(二)-单元测试框架
  2. C语言实现的简单的线程池
  3. 文件加密保卫中小企业信息安全
  4. Linux创建sqlite数据库文件,SQLite数据库的创建与附加
  5. bzoj 1409 Password
  6. 思科模拟器的简单安装和使用
  7. 调试经验——Windows10中iTunes不能识别iPad的解决方法
  8. 解决android SDK不能更新,appium测试混合app无法返回webview问题
  9. 2019蓝桥杯国赛c++B组
  10. python正则表达式【标准库—re】
  11. 2019 美团校招笔试题 外卖满减
  12. 能够修改证件照的软件有哪些?分享两种好用的修改工具
  13. 数学建模之稳定性模型详解
  14. Spring MVC controller控制器映射无法访问问题!!!
  15. 小学二年级计算机课游戏,小学二年级适合玩的课堂游戏
  16. 秦西盟乘着“互联网+管道”的东风,做天下的生意
  17. 用matlab跳动的心,[ 教程 ] 用Arduino制作一个跳动的心
  18. C#,图像二值化(12)——基于谷底最小值的全局阈值算法(Valley-Minium Thresholding)与源代码
  19. java开发入门思维导图,java秒杀系统面试题
  20. 中国下一代互联网(CNGI)建设市场投资前景预测与发展战略规划研究报告2021~2027年

热门文章

  1. infor wms 中英文对照_为什么要wms?_wms吧
  2. Linux 配置vim编辑器
  3. 一个很不错的技术网站
  4. Swift数据类型(五)
  5. 将ubuntu的apache2修改成https链接
  6. 说说你对Jdk并发包中的CAS实现的了解?
  7. Swift - 判端网络连接状态,连接类型(3G还是Wifi)
  8. HAproxy + keepalived 实现双机热备
  9. IE9 Platform Preview 3昨天发布
  10. 在Silverlight中使用DynamicMethod(动态方法)