数据结构实验之链表五:单链表的拆分
来源:互联网 发布:福利彩票不能网络购买 编辑:程序博客网 时间:2024/06/10 19:56
数据结构实验之链表五:单链表的拆分
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数。两个子链表中数据的相对次序与原链表一致。
Input
第一行输入整数N;;
第二行依次输入N个整数。
第二行依次输入N个整数。
Output
第一行分别输出偶数链表与奇数链表的元素个数;
第二行依次输出偶数子链表的所有数据;
第三行依次输出奇数子链表的所有数据。
第二行依次输出偶数子链表的所有数据;
第三行依次输出奇数子链表的所有数据。
Example Input
101 3 22 8 15 999 9 44 6 1001
Example Output
4 622 8 44 6 1 3 15 999 9 1001
Hint
不得使用数组!
Author
#include<stdio.h>#include<stdlib.h>struct node{int data;struct node *next;};struct node *creat(struct node *head,int n){int i;struct node *p,*q;q=head;for(i=0;i<n;i++){p=(struct node *)malloc(sizeof(struct node));scanf("%d",&p->data);p->next=q->next;q->next=p;q=p;}return head;}int main(){int i,j,n,m,k,t;struct node *head,*head1,*p,*q,*tail;head=(struct node *)malloc(sizeof(struct node));head->next=NULL;head1=(struct node *)malloc(sizeof(struct node));head1->next=NULL;scanf("%d",&n);head=creat(head,n);p=head;tail=head1;k=0;for(i=0;i<n;i++){if(p->next->data%2==0){k++;q=p->next;p->next=q->next;q->next=tail->next;tail->next=q;tail=q;}elsep=p->next;}printf("%d %d\n",k,n-k);p=head1;p=p->next;i=0;while(p!=NULL){if(i==0)printf("%d",p->data);elseprintf(" %d",p->data);p=p->next;i++;}printf("\n");p=head;p=p->next;i=0;while(p!=NULL){if(i==0)printf("%d",p->data);elseprintf(" %d",p->data);p=p->next;i++;}printf("\n");}
0 0
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 洛谷p1388算式(dp)
- synchronized 线程控制自创 搞笑版 解说
- JAVAWEB之初识servlet
- c3p0
- 图的遍历之广度优先搜索遍历
- 数据结构实验之链表五:单链表的拆分
- java面试题
- Uva136 Ugly Numbers 【优先队列】【例题5-7】
- java Scanner类常用方法
- 数据结构实验之链表六:有序链表的建立
- 1934: [Shoi2007]Vote 善意的投票
- KindEditor结合ssm框架使用
- WebBasic
- POJ-3276-尺取法,greedy