zoukankan      html  css  js  c++  java
  • 数据结构实验之链表四:有序链表的归并

    数据结构实验之链表四:有序链表的归并

    Time Limit: 1000MS Memory Limit: 65536KB

    Problem Description

    分别输入两个有序的整数序列(分别包含M和N个数据),建立两个有序的单链表,将这两个有序单链表合并成为一个大的有序单链表,并依次输出合并后的单链表数据。

    Input

    第一行输入M与N的值; 
    第二行依次输入M个有序的整数;
    第三行依次输入N个有序的整数。

    Output

    输出合并后的单链表所包含的M+N个有序的整数。

    Example Input

    6 5
    1 23 26 45 66 99
    14 21 28 50 100

    Example Output

    1 14 21 23 26 28 45 50 66 99 100

    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    typedef struct node
    {
    int data;
    struct node *next;
    }list;
    struct node *create(int n)
    {
         list *p,*head,*tail;
    head = (list *)malloc(sizeof(list));
    head->next = NULL;
    tail = head;
    for(int i=0;i<n;i++)
    {
    p = (list *)malloc(sizeof(list));
    p->next = NULL;
    scanf("%d",&p->data);
    tail->next = p;
    tail = p;
    }
    return head;
    }
    void display(list *head)
    {
    list *p;
    p = head->next;
    while(p)
    {
    if(p->next!=NULL)
    {
    printf("%d ",p->data);
    }
    else
    {
    printf("%d\n",p->data);
    }
    p=p->next;
    }
    }
    struct node *merge(list *head1,list *head2)
    {
    list *p1=head1->next,*p2=head2->next,*tail;
    head1->next=NULL;
    tail=head1;
    while(p1 && p2)
    {
    if(p1->data<p2->data)
    {
    tail->next = p1;
    tail = p1;
    p1=p1->next;
    tail->next = NULL;
    }
    else
    {
    tail->next = p2;
    tail = p2;
                p2 = p2->next;
    tail->next = NULL;
    }
    }
    if(p1)
    {


    tail->next = p1;

    }
    else
    {

    tail->next = p2;

    }
    return head1;
    }
    int main()
    {
    list *p,*head2,*head1;
    int n,m;
    scanf("%d%d",&m,&n);
        head1 = create(m);
    head2 = create(n);
    head1 = merge(head1,head2);
    display(head1);


    return 0;
    }

  • 相关阅读:
    慎用const_cast
    python中string的操作函数
    C++ Const总结
    python dict sorted 排序
    "没有找到MSVCP80D.dll,因此这个应用程序未能启动。重新安装应用程序...
    提高你开发效率的十五个 Visual Studio 使用技巧
    一些 python 插件 编译安装的注意事项
    html 制作表格 合并 样式
    将一个表的数据更新到另一个表中
    屏蔽web页面的右键,但不屏蔽输入框中的右键
  • 原文地址:https://www.cnblogs.com/CCCrunner/p/6444609.html
Copyright © 2011-2022 走看看