数据结构实验之链表五:单链表的拆分
来源:互联网 发布:软件测试职位描述 编辑:程序博客网 时间:2024/06/07 06:02
数据结构实验之链表五:单链表的拆分
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
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
#include <bits/stdc++.h>using namespace std;struct node{ int data; node *next;};struct node *creat(int n){ node *head, *tail, *p; head = new node; head->next = NULL; tail = head; for(int i = 0; i < n; i++) { p = new node; cin >> p->data; p->next = NULL; tail->next = p; tail = p; } return head;}int s=0;struct node* split1(node *head){ node *p, *tail3, *tail2, *q, *head2, *head3; head2 = new node; head3 = new node; head2->next = NULL; head3->next = NULL; tail2 = head2; tail3 = head3; p = head->next; q = p->next; while(p) { if(p->data%2 == 0) { s++; p->next = NULL; tail2->next = p; tail2 = p; } else { p->next = NULL; tail3->next = p; tail3 = p; } p = q; if(q) q = q->next; } return head2;}int g=0;struct node* split2(node *head){ node *p, *tail3, *tail2, *q, *head2, *head3; head2 = new node; head3 = new node; head2->next = NULL; head3->next = NULL; tail2 = head2; tail3 = head3; p = head->next; q = p->next; while(p) { if(p->data%2 == 0) { p->next = NULL; tail2->next = p; tail2 = p; } else { g++; p->next = NULL; tail3->next = p; tail3 = p; } p = q; if(q) q = q->next; } return head3;}void display(node *head){ node *p; for(p = head->next; p; p=p->next) { if(p->next) cout << p->data << " "; else cout << p->data << endl; }}int main(){ int n; struct node *head, *head1, *head2; cin >> n; head = creat(n); head1 = split1(head); head2 = split2(head); cout << s << " " << g << endl; display(head1); display(head2); return 0;}
0 0
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 算法:Construct Binary Tree from Preorder and Inorder Traversal
- OpenCV3.1中读写图像与读写像素
- unity打包ios过大,ios压缩技巧
- 如何获取百度地图API的密钥以及调用百度地图api
- php-fpm 启动脚本
- 数据结构实验之链表五:单链表的拆分
- 用redis轻松实现秒杀系统
- Linux中断子系统 - softirq
- Gradle 完整指南(Android)
- SQL 左外连接,右外连接,全连接,内连接
- 决定换博客了
- [Unity]最近遇到的几个问题.(不间断更新)
- Two Sum
- ORACLE EXPLAIN PLAN的总结 (优化SQL语句)