单链表-单链表A拆分为A(偶)和C(奇) (尾插法建表)
题意:
有一个整数元素建立的单链表A,设计一个算法,将其拆分成两个链表A 和B,使得链表A中含有所有偶数的结点,B链表中含有所有的奇数结点。且保持原来的相对次序。
单链表的存储结构:
typedef struct LinkList{int data;LinkList * next;}
分析:
这里采用新建链表的方法,而题意要求保持相对次序,所以这里采用尾插法建立单链表。
这里可以用原来的单链表A的头结点作为新链表的头结点。所有不用再生成一个新头结点。
思路:
1.定义一个遍历单链表A的指针p,两个尾指针 ra,rb,要生成一个头结点。
2.将尾指针赋值好。头结点也是。
3.通过while循环,条件为p != null ,在循环中,判断是否为偶数,如果是偶数,将该数插入链表A中,再后移,如果是奇数,则插入链表B中,再后移。
4.最后两个链表的最后一个节点都置为空。
C代码实现:
void Splist(LinkList * &A, LinkList * &B){LinkList * P = A->next,*ra,*rb; //遍历链表的指针p.两个尾指针。ra = A;B = (LinkList *)malloc(sizeof(LinkList));rb = B;while(p!=null){if(p->data%2 == 0){ //偶数结点ra->next = p;ra = p;p = p->next;}else{ //奇数结点rb->next = p;rb = p;p = p->next;}}ra->next = rb->next = null; //两尾节点指针域置为空。 }
单链表-单链表A拆分为A(偶)和C(奇) (尾插法建表)相关推荐
- 二、单链表的头插法建表和尾插法建表
链式存储结构: 用一组不一定连续的存储单元存储逻辑上相邻的元素,元素间的逻辑关系是由附加的指针域表示的,由此得到的存储结构称为链式存储结构. 单链表(线性链表) 使用链式存储结构表示每个数据元素 ai ...
- 单链表——单链表的定义及基本操作(初始化、头插法尾插法建表、查找、插入、删除、判空等)
文章目录 单链表的定义 单链表上的操作 初始化 建立单链表 头插法建立单链表 尾插法建立单链表 遍历单链表 求单链表的长度 查找操作 按值查找 按位查找 插入操作 删除操作 判空操作 完整代码及实例 ...
- 双链表——双链表的定义及其基本操作(初始化、头插法尾插法建表、插入、查找、删除、判空等)
文章目录 双链表的定义 双链表上的操作 初始化 插入操作 建立双链表 头插法建立双链表 尾插法建立双链表 遍历操作 求双链表的长度 查找操作 按值查找 按位查找 删除操作 判空操作 完整代码及实例 总 ...
- 头插法和尾插法建立单链表
在进行单链表的基本运算之前必须先建立单链表,建立单链表的常用方法有两种:头插法建表和尾插法建表 头插法建表,从一个空表开始,读取字符数组a中的字符,生成新节点,将读取的数据存放到新节点的数据域中,然后 ...
- 数据结构__头插法建立单链表、尾插法建立单链表
单链表定义.头插法建表.尾插法建表 一.单链表的定义 单链表是线性表的链式存储,是指通过一组任意的存储单元来存储线性表中的数据元素. 单链表结构定义为: 其中data为数据域,用来存放数据:nex ...
- 创建链表:头插法与尾插法
两种方法的区别无非是插入的位置: 头插法:新插入结点始终未当前的第一个结点 尾插法:新插入结点始终为当前的最后一个结点 头插法建表 实现代码: //头插法建链表 void HeadCreateList ...
- 头插法和尾插法创建链表(有无头结点)
头插法和尾插法创建链表(有无头结点) 文章目录 头插法和尾插法创建链表(有无头结点) 1 头插法 1.1头插法建表规则: 1.2 头插法建表代码实现 2 尾插法 2.1 尾插法建表规则: 2.2 尾插 ...
- 单链表-单链表拆分为A和B链表(尾插法+头插法)
题意: 设C{a1,b1,a2.b2-an,bn}为一线性表,采用带头结点的单链表hc存放,设计一个就地算法,将其拆分为两个线性表,每个线性表均采用带头结点的单链表存储,使得: A = {a1,a2. ...
- 建立单链表(尾插法)
建立单链表有两种方法, 这里采用头插法. 尾插法含义: 该方法是从一个空表开始,读取数组的元素,生成新节点,将读取的数据放到存放在新节点的数据域中,然后将该节点插入到链表的表头上,直到结束为止. 由于 ...
最新文章
- Prometheus 如何做到“活学活用”,大牛总结的避坑指南
- Java 多线程编程(锁优化)
- 您的用户配置文件没有正确加载
- MySQL怎么打开explain_MySQL干货之-利用EXPLAIN优化查询
- Mybatis源码阅读(四):核心接口4.2——Executor(下)
- 关于操作 ASP.NET Web API的实例
- python生成器generator和迭代器Iterator测试
- 智能优化算法:黏菌优化算法 - 附代码
- Oracle认证/维保技术支持服务找重庆思庄
- 计算机操作系统第四版课后全部习题答案
- 京瓷打印机m5521cdn_京瓷M5521cdn打印机驱动(京瓷打印机驱动程序)V5.1.2107 最新版...
- 排列组合的一些公式及推导
- 3D场景建模学习必备的基础知识
- 深蓝算法反演AOD入门记录(一)
- “跨次元”目标检测模型hold住各种画风,真人赛博恐龙梵高画作都能识别,复旦校友一作,在线Demo可玩...
- java面试之Jsp(面试必看)
- 5、zookeeper四字监控命令/配置属性
- 京东cookie京东ck
- c语言的七大查找算法,非常值得学习
- 【每天一个 Linux 命令】网络相关命令(ifconfig、route、ping、traceroute、netstat、ss、telnet、rcp、scp)