【2120】数据结构实验之链表五:单链表的拆分 sdutOJ
来源:互联网 发布:淘宝主图模板 psd 编辑:程序博客网 时间:2024/06/08 06:39
数据结构实验之链表五:单链表的拆分
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数。两个子链表中数据的相对次序与原链表一致。
输入
第一行输入整数N;;
第二行依次输入N个整数。
第二行依次输入N个整数。
输出
第一行分别输出偶数链表与奇数链表的元素个数;
第二行依次输出偶数子链表的所有数据;
第三行依次输出奇数子链表的所有数据。
第二行依次输出偶数子链表的所有数据;
第三行依次输出奇数子链表的所有数据。
示例输入
101 3 22 8 15 999 9 44 6 1001
示例输出
4 622 8 44 6 1 3 15 999 9 1001
做题思路:建表时同时顺序建立两支链表(偶数链表和奇数链表)
#include <stdio.h>#include <string.h>#include <stdlib.h>struct node{ int data; struct node *next;}*head1,*head2;int m,k;//m记录偶数的个数,k记录奇数的个数struct node *creat(int n){ m=0; k=0; int i; struct node *t,*p,*q; head1=(struct node *)malloc(sizeof(struct node)); head2=(struct node *)malloc(sizeof(struct node)); head1->next=NULL; head2->next=NULL; t=head1; q=head2; for(i=0;i<n;i++) { p=(struct node *)malloc(sizeof(struct node)); scanf("%d",&p->data); if(p->data%2==0) { p->next=NULL; t->next=p; t=t->next; m++; } else { p->next=NULL; q->next=p; q=q->next; k++; } } return head1;};void show(struct node *head){ struct node *p; p=head->next; while(p) { if(p->next==NULL) printf("%d\n",p->data); else printf("%d ",p->data); p=p->next; }}int main(){ int n; scanf("%d",&n); creat(n); printf("%d %d\n",m,k); show(head1); show(head2); return 0;}
0 0
- 【2120】数据结构实验之链表五:单链表的拆分 sdutOJ
- SDUTOJ 2120数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 6个值得推荐的Android开源框架简介
- Handler sendMessage 与 obtainMessage (sendToTarget)比较
- 深入理解Linux进程间通信(IPC)-- Posix消息队列
- centos6.4安装GCC
- 传输层学习之五(TCP的SACK,F-RTO)
- 【2120】数据结构实验之链表五:单链表的拆分 sdutOJ
- 服务器应用:IIS一步步建FTP服务器
- android_c++ 高级编程NDK学习笔记四
- js截取字符串
- 软件架构分析 -- 牛人必看
- webrtc架构
- linux-远程-putty
- java中的native关键字
- 结构风险最小和VC维理论的解释