数据结构实验之链表五:单链表的拆分
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
Hint
不得使用数组!
#include<bits/stdc++.h>using namespace std;typedef struct node
{int data;struct node *next;
} List;int sum1, sum2;List *creator(int n)
{List *head, *tail, *p;head = new List;head->next = NULL;tail = head;for(int i = 0; i < n; i++){p = new List;scanf("%d", &p->data);p->next = NULL;tail->next = p;tail = p;}return head;
}List *sqilt(List *head1)
{List *head2, *tail1, *tail2, *p, *q;p = head1->next;head1->next = NULL;q = p->next;tail1 = head1;head2 = new List;head2->next = NULL;tail2 = head2;while(p){if(p->data % 2 == 0){sum1++;p->next = NULL;tail1->next = p;tail1 = p;}else{sum2++;p->next = NULL;tail2->next = p;tail2 = p;}p = q;if(q)q = q->next;}return head2;
}void display(List *head)
{List *p;p = head->next;while(p){printf("%d%c", p->data, p->next ? ' ': '\n');p = p->next;}
}int main()
{int n;sum1 = 0;sum2 = 0;scanf("%d", &n);List *head1, *head2;head1 = creator(n);head2 = sqilt(head1);printf("%d %d\n", sum1, sum2);display(head1);display(head2);return 0;
}
数据结构实验之链表五:单链表的拆分相关推荐
- c语言判断顺序链表是否为空,数据结构之线性表(五)——单链表(2 初始化,判断空表,销毁,清空,求表长)...
1.单链表(带头结点)的初始化 即,构造一个空表,如下图, 算法步骤: 1.生成新结点作头结点,用头指针L指向头结点. 2.将头指针的指针域置空. 算法描述: Status InitList_L(Li ...
- 基于Python的数据结构实验——顺序表与单链表建立与操作(附详细代码和注释)
1.创建一个名为 prac02_01.py 的文件,在其中编写一个顺序表的类,该类必须包含顺 序表的定义及基本操作,并通过以下步骤测试基本操作的实现是否正确,给出运行结果. (1)初始化一个顺序表 S ...
- 数据结构(05)— 线性单链表实战
1. 设计思路 本项目的实质是完成对考生信息的建立.查找.插入.修改.删除等功能,可以首先定义项目的数据结构,然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结 ...
- 数据结构(08)— 线性单链表基本操作
1. 线性单链表数据结构 // 假定每个结点的类型用 SNode 表示 typedef struct SNodeTag {int data; // 所存储的数据元素SNodeTag *next; // ...
- python单链表实现具体例子_Python实现数据结构线性链表(单链表)算法示例
本文实例讲述了Python实现数据结构线性链表(单链表)算法.分享给大家供大家参考,具体如下: 初学python,拿数据结构中的线性链表存储结构练练手,理论比较简单,直接上代码. #!/usr/bin ...
- 「数据结构 | 链表」单链表、双向链表节点操作演示动画
目录 1. 什么是链表 2. 链表数据结构 2.1 单链表数据结构(Java) 2.2 双向链表数据结构(Java) 3. 单链表操作动画 3.1 新增节点 3.2 删除节点 4. 双向链表操作动画 ...
- 【数据结构与算法】 01 链表 (单链表、双向链表、循环链表、块状链表、头结点、链表反转与排序、约瑟夫环问题)
一.线性表 1.1 概念与特点 1.2 线性表的存储结构 1.3 常见操作 1.4 应用场景 二.链表 2.1 链表简介 2.2 单向链表(单链表) 2.21 基本概念 2.22 单链表基本操作 2. ...
- 数据结构学习(C++)——单链表应用(一元多项式【1】) (转)
数据结构学习(C++)--单链表应用(一元多项式[1]) (转)[@more@] 总算到了这里,这时,你会很得意的说,辛辛苦苦学的单链表总算知道能干点什么了.但是很不幸,如果你和我一样看的是那本书,到 ...
- 数据结构5: 链表(单链表)的基本操作及C语言实现
逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储. 由于分散存储,为了能够体现出数据元素之间的逻辑关 ...
- 数据结构开发(6):静态单链表的实现
0.目录 1.单链表的遍历与优化 2.静态单链表的实现 3.小结 1.单链表的遍历与优化 问题: 如何遍历单链表中的每一个数据元素? 当前单链表的遍历方法: 遗憾的事实: 不能以线性的时间复杂度完成单 ...
最新文章
- 用VS.NET中的测试工具测试ASP.NET程序
- VB为自己的程序设定消息(可接收处理)
- MVC根据CheckBox的Value值选中对应的复选框及获取选中的Value值
- redis(17)--集群
- 安装oracle不动了,windows2008安装ORACLE到2%不动的问题 | 信春哥,系统稳,闭眼上线不回滚!...
- 看清美国“黑客帝国”的真面目
- 信息学奥赛C++语言:输出亲朋字符串
- anaconda 安装在c盘_Tensorflow 2.1安装
- Redis高效的数据结构及特殊性
- step7设置pcpg_STEP7 PC/PG设置的疑惑
- 窗口及元素尺寸大小位置获取方法记录
- 全网最全的 JavaScript 数组各个方法用途的思维导图
- 30个有助于探索Go编程语言的在线资源
- RTN实时音视频传输网络
- java实现五子棋_Java的五子棋实现
- vmd python 命令_【MMD】用python解析VMD格式读取
- java实现socket长连接_java如何实现Socket的长连接和短连接
- 活动星投票网络文明公益广告网络评选微信的投票方式线上免费投票
- 微信客服为什么不能人工服务器,微信客服消息格式限制及功能
- 长沙哪里学青少年计算机编程,长沙青少年培训编程-青少年编程教育(人工智能编程)...
热门文章
- 拿到大厂产品经理offer的应届生都是什么水平?
- Re:从 0 开始的微服务架构--(四)如何保障微服务架构下的数据一致性--转
- 文件上传流式处理commons-fileupload
- Java NIO——Selector机制源码分析---转
- 数学建模学习笔记——蒙特卡洛模拟
- 评分卡模型剖析之一(woe、IV、ROC、信息熵)
- 揭秘Sponge:统一Hadoop、Spark、SDS、Swift的大数据操作系统
- Spring Cloud【Finchley】-10Hystrix监控
- Vue2.x-05 iview的Select控件点击从后台加载数据
- Android开发工具新接触