数据结构实验之链表五:单链表的拆分
来源:互联网 发布:java第三方支付 编辑:程序博客网 时间:2024/06/12 20:22
*点击获取原题链接
数据结构实验之链表五:单链表的拆分
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
输入N个整数顺序建立一个单链表,将该单链表拆分成两个子链表,第一个子链表存放了所有的偶数,第二个子链表存放了所有的奇数。两个子链表中数据的相对次序与原链表一致。
Input
第一行输入整数N;;
第二行依次输入N个整数。
Output
第一行分别输出偶数链表与奇数链表的元素个数;
第二行依次输出偶数子链表的所有数据;
第三行依次输出奇数子链表的所有数据。
Example Input
10
1 3 22 8 15 999 9 44 6 1001
Example Output
4 6
22 8 44 6
1 3 15 999 9 1001
Hint
不得使用数组!
Author
///
个人觉得做链表一定要耐心
耐心的找BUG
#include <string.h>#include <stdio.h>#include <stdlib.h>struct node{ int data;///链表数据域 struct node *next;///链表指针域};int m,n;/// 储存两个链表的个数struct node *creat(int n)///顺序建立链表{ struct node *head=NULL,*tail,*p; head=(struct node *)malloc(sizeof(struct node ));///为头结点分配内存 tail=head; for(int i=1;i<=n;i++) { p=(struct node *)malloc(sizeof(struct node ));///新节点 scanf("%d",&p->data); p->next=NULL; tail->next=p; tail=p; } return head;};void output(struct node *head)/// 遍历链表{ struct node *p=head->next; while(p) { printf("%d%c",p->data,p->next==NULL?'\n':' '); p=p->next; }}void change(struct node *head,struct node *head1,struct node *head2){ head1->next=NULL; head2->next=NULL; struct node *t;///对应原链表 struct node *p,*q;///两个游动指针 t=head->next;///用t来遍历原链表 p=head1; q=head2; head1->next=NULL; head2->next=NULL; while(t) { if(t->data%2==0)/// 如果是偶数则加在head1的后面 { n++;/// 偶数数量加一 p->next=t; p=t; t=t->next; p->next=NULL; } else ///奇数 { m++; q->next=t; q=t; t=t->next; q->next=NULL; } }}int main(){ scanf("%d",&n); struct node *head=creat(n);///顺序简练表 struct node *head1=NULL,*head2=NULL;/// 建立两个分链表的头结点 /********两个分链表的头结点分配内存******/ head1=(struct node *)malloc(sizeof(struct node )); head2=(struct node *)malloc(sizeof(struct node )); m=0; n=0;/// m奇数n 偶数 change(head,head1,head2);///拆分单链表 printf("%d %d\n",n,m);/// 输出 奇数和偶数的个数 output(head1);/// 遍历分开的链表 output(head2); return 0;}
0 0
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- 数据结构实验之链表五:单链表的拆分
- MongoDB学习笔记—Linux下搭建MongoDB环境
- 并查集
- 邻接矩阵
- 三星掌门人李在镕首轮审判将于3月9日举行
- 析构函数
- 数据结构实验之链表五:单链表的拆分
- android-service
- 腾讯云服务器--django安装及基本配置
- 5-20 查找整数 (10分)
- python中矩阵相加函数sum()
- 联想十六亿再卖楼 经验来看:卖楼确实能提亮财报
- CentOS 7 防火墙 firewall-cmd
- win7系统注意
- 5-19 选择法排序 (20分)