• 数据结构实验之链表五:单链表的拆分-sdut


    数据结构实验之链表五:单链表的拆分

    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

    实验代码
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct mode_t
    {
        int data;
        struct mode_t *next;
    }play;
    
    int main()
    {
        int n;
        play *head1, *head2, *p,*q,*t1,*t2, *tail1, *tail2;
        head1=(play *)malloc(sizeof(play));
        head2=(play *)malloc(sizeof(play));
        t1=(play *)malloc(sizeof(play));
        t2=(play *)malloc(sizeof(play));
        t1->next=NULL;
        tail1=head1;
        tail2=head2;
        t2->next=NULL;
        scanf("%d",&n);
        int m;
        m=n;
        int h;
        h=n;
        while(n--)
        {
            p=(play *)malloc(sizeof(play));
            scanf("%d",&p->data);
            tail1->next=p;
            p->next=t1;
            tail1=p;
        }
        p=head1->next;
        tail2=head2;
        q=head1;
        while(p->next!=NULL)
        {
            if(p->data%2==0)
            {
                tail2->next=p;
                tail2=p;
                q->next=q->next->next;
                m--;
                p=p->next;
            }
            else
            {
                 p=p->next;
                 q=q->next;
            }
        }
        tail2->next=t1;
        p=head1->next;
        q=head2->next;
        printf("%d %d
    ",h-m, m);
    
    
    
    
        while(q->next->next!=NULL)
        {
            printf("%d ",q->data);
            q=q->next;
        }
        printf("%d
    ",q->data);
        while(p->next->next!=NULL)
        {
            printf("%d ",p->data);
            p=p->next;
        }
        printf("%d
    ",p->data);
    
        return 0;
    }
    
  • 相关阅读:
    JavaScript——DOM或以树形展示的Web页面
    数字金额大写和小写转换
    Jquery—Jquery异步功能实例
    哈希—— POJ 3349 Snowflake Snow Snowflakes
    字节和字符的差别
    Kali Linux 安全渗透教程&lt;第三更&gt;1.2 安全渗透所需工具
    Git基础
    LeetCode Implement Stack using Queues
    HDU 4421 Bit Magic(2-sat)
    js判段URL是否可用(js判段网络是否不可用)
  • 原文地址:https://www.cnblogs.com/lxhax/p/6628962.html
Copyright © 2020-2023  润新知