数据结构实验之链表五:单链表的拆分
来源:互联网 发布:会计常用电脑软件 编辑:程序博客网 时间:2024/05/17 01:10
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
不得使用数组!
#include<iostream>#include<stdio.h>#include<string.h>#include<stdlib.h>using namespace std;int sum1;int sum2;typedef struct LNode{ int data; struct LNode *next;}LinkList;void CreateList(LinkList *&L1,LinkList *&L2,int n){ int temp,i; sum1=0; sum2=0; LinkList *r1,*s1,*r2,*s2; L1=(LinkList *)malloc(sizeof(LinkList)); L2=(LinkList *)malloc(sizeof(LinkList)); r1=L1; r2=L2; for(i=0;i<n;i++) { scanf("%d",&temp); if(temp%2!=0) { sum1++; s1=(LinkList *)malloc(sizeof(LinkList)); s1->data=temp; r1->next=s1; r1=s1; } else { sum2++; s2=(LinkList *)malloc(sizeof(LinkList)); s2->data=temp; r2->next=s2; r2=s2; } } r1->next=NULL; r2->next=NULL; printf("%d %d\n",sum2,sum1);}void DispList(LinkList *L){ LinkList *p; p=L->next; while(p!=NULL) { printf("%d",p->data); if(p->next!=NULL) printf(" "); else printf("\n"); p=p->next; }}int main(){ int n; LinkList *L1,*L2; scanf("%d",&n); CreateList(L1,L2,n); DispList(L2); DispList(L1); return 0;}
0 0
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 技术相关实践记录
- 如何成为高级程序员
- 企业级应用框架的演变
- 虚拟机几种联网的方式,如何共享主机IP
- TI C6000 优化进阶:循环最重要!
- 数据结构实验之链表五:单链表的拆分
- PAT BASIC LEVEL 1034. 有理数四则运算(20)
- C标准库学习之<stdarg.h> ——不定参数处理
- 婚礼的正确打开方式:“电子+纸质”请柬,让婚礼更出彩
- maven的tomcat插件debug设置
- tableview性能优化
- 初步运用HTML本地存储localStorage
- 莫队算法及其应用
- 栈-顺序存储结构(C语言实现)