c语言链表拆分,P2 拆分链表
## 将一个链表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 拆分链表相关推荐
- 数据结构实验之链表五:单链表的拆分-sdut
数据结构实验之链表五:单链表的拆分 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 输入N个 ...
- 数据结构实验之链表五:单链表的拆分_JAVA
Description 输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数.两个子链表中数据的相对次序与原链表一致. Input 第 ...
- 数据结构实验之链表五:单链表的拆分
Description 输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数.两个子链表中数据的相对次序与原链表一致. Input 第 ...
- G - 数据结构实验之链表五:单链表的拆分
欢迎提问,随时作答! Description 输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数.两个子链表中数据的相对次序与原链表 ...
- 数据结构例9.编写一个算法,将带头结点的单向链表 拆分成一个奇数链表和一个偶数链表,并分别输出
/* 编写一个算法,将带头结点的单向链表 拆分成一个奇数链表和一个偶数链表,并分别输出 */ # include <iostream> # include <stdlib.h> ...
- 【数据结构和算法笔记】c语言实现顺序表和链表
线性表的定义: 线性表中元素关系是一对一的,元素个数是有限的 序列补充: 存在唯一开始元素和终端元素,除此之外,每个元素只有唯一的前驱元素和后继元素 线性表的长度: 线性表中所含元素的个数(n),n= ...
- c语言单链表设计报告,单链表实验报告
<数据结构>实验报告二 分校: 学号: 日期: 班级: 姓名: 程序名: L2311.CPP 一.上机实验的问题和要求: 单链表的查找.插入与删除.设计算法,实现线性结构上的单链表的产生以 ...
- C语言从已排序的链表中删除重复项(附完整源码)
C语言从已排序的链表中删除重复项 C语言从已排序的链表中删除重复项完整源码(定义,实现,main函数测试) C语言从已排序的链表中删除重复项完整源码(定义,实现,main函数测试) #include ...
- 《数据结构》c语言版学习笔记——其他链表(线性表的链式存储结构Part2)
线性表的链式存储结构 数据结构系列文章 第三章 循环链表.双向链表 文章目录 线性表的链式存储结构 前言 一.循环链表 (一)定义 (二)尾指针 二.双向链表 (一)定义 (二)代码 总结 前言 提示 ...
最新文章
- 深度学习入门指北——从硬件到软件
- 企业网络推广方案教大家在更换服务器时降低排名影响的技巧!
- 【面试练习题】存在序列:1,1/2,2/3,3/5,5/8,8/13...,求前10项的和
- Mysql数据库基础(一)基本概述、构建服务、基本管理、数据类型
- 三创比赛关于软件设计的策划书_关于大学生创业和电商创业大赛
- servlet中doPost()和doGet()
- 几种线程池的实现算法分析
- 996.ICU凉凉了!
- ShareX(截图工具) 绿色版,功能异常强大
- 100种网站推广方法全集
- 企业即时通讯行业评测——imo VS RTX
- 同一个tomcat部署多个项目
- 运营经验|怎么把app运营好
- Balsamiq新的感觉
- 2023软件测试最难求职季,哪些测试技能更容易拿到offer?
- html贝塞尔曲线在线,【HTML+js+纯前端】三次方贝塞尔曲线手工拟合小工具
- 华为ensp模拟器占用CPU高问题处理
- BZOJ 4327 【JSOI 2012】 玄武密码 AC自动机+dfs
- LINUX学习网址精选
- MySQL数据库事务基本介绍、四大特征、隔离界别的使用方法
热门文章
- java poi excel导出2003版改成2007版本的时候报错
- 墨言教育:黄鹤楼1800年历史主题海报邀请展:传递历史文化积淀和新时代风采
- 尼日利亚4g频段_4G全球频段划分及主要运营商对应表2015版.xls
- MacOS Monterey 12.1 (21C52) OC 0.7.6 / Cl 5142 / PE 三分区原版黑苹果镜像
- Real-time signal
- 【keepass】密码管理软件keepass的安全风险分析,如何在使用keepass的过程中避免泄露数据库信息和密码?
- 终于,字节跳动要取消大小周了,我 1.7 万人的票圈都快炸了!
- Mac电脑怎么远程桌面连接?
- Element学习使用
- 控制算法简析1——PID和负反馈的数学原理