链表拆分
来源:互联网 发布:德语网络课程 知乎 编辑:程序博客网 时间:2024/05/06 19:08
题目描述
输入
第二行依次输入N个整数。
输出
第二行依次输出偶数子链表的所有数据;
第三行依次输出奇数子链表的所有数据。
#include <stdio.h>
#include <stdlib.h>
struct node
{
int data;
struct node*next;
};
int main()
{
int n,i,x=0,y=0;
struct node*head1,*head2,*p,*q;
scanf("%d",&n);
head1=(struct node*)malloc(sizeof(struct node));
head1->next=NULL;
for(i=0; i<=n-1; i++)
{
p=(struct node*)malloc(sizeof(struct node));
scanf("%d",&p->data);
p->next=NULL;
p->next=head1->next;
head1->next=p;
}
p=head1->next;
q=p->next;
head1->next=NULL;
head2=(struct node*)malloc(sizeof(struct node));
head2->next=NULL;
while(p!=NULL)
{
if(p->data%2==0)
{
x++;
p->next=head1->next;
head1->next=p;
}
else
{
y++;
p->next=head2->next;
head2->next=p;
}
p=q;
if(q!=NULL)
q=q->next;
}
printf("%d %d\n",x,y);
p=head1->next;
while(p!=NULL)
{
if(p->next!=NULL)
printf("%d ",p->data);
else printf("%d\n",p->data);
p=p->next;
}
p=head2->next;
while(p!=NULL)
{
if(p->next!=NULL)
printf("%d ",p->data);
else printf("%d\n",p->data);
p=p->next;
}
return 0;
}
分开head1和head2 ,p和q在一条链上谁符合要求就加在哪条链后
- 拆分链表
- 链表拆分
- 链表的拆分
- 拆分单循环链表
- 单链表的链表拆分
- 有序链表的拆分
- 拆分表
- ytu 2213 链表的拆分
- 进阶项目12-链表的拆分
- EntityFramework 实体拆分和表拆分
- 表的垂直拆分和水平拆分
- 表的垂直拆分和水平拆分
- 表的垂直拆分和水平拆分
- 表的垂直拆分和水平拆分
- 合并拆分表
- 数据库优化-表拆分
- 数据库优化 -- 拆分表
- 表拆分基本原理图解
- C++ builder消息的运用
- 顺序表应用6:有序顺序表查询
- 离散什么的
- 二值化图像的颜色翻转
- 整理:CString类的完美总结&&CString 成员函数用法大全&&string 与 CString 转化&&<string><string.h> 和<cstring>的区别
- 链表拆分
- 解决MAVEN加载不了的问题
- 链表归并
- POJ 1961(KMP, 最短循环节)
- linux下文件的压缩和解压
- HTML5的小技巧(一)
- 中软Java学习笔记第一天
- 多线程编程指南摘录:线程同步---使用锁(2)
- Android杂谈(8)关于自定义View的一些实践+遮罩理解