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

    点击打开链接

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

    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

    Hint

    不得使用数组!

    Author

    #include <iostream>
    using namespace std;
    struct node
    {
    	int num;
    	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->num;
    		p->next=NULL;
    		tail->next=p;
    		tail=p;
    	}
    	return head;
    }
    struct node *merge(struct node *head1,struct node *head2)
    {
    	node *p1,*p2,*tail;
    	p1=head1->next;
    	p2=head2->next;
    	tail=head1;
    	//free(head2);
    	while(p1&&p2)
    		if(p1->num<p2->num)
    		{
    			tail->next=p1;
    			tail=p1;
    			p1=p1->next;
    		}
    		else
    		{
    			tail->next=p2;
    			tail=p2;
    			p2=p2->next;
    		}
    		if(p1)//
    			tail->next=p1;
    			else
    			tail->next=p2;
    		return head1;
    }
    struct node *display(struct node *head)
    {
    	while(head!=NULL)
    	{
    		if(head->next!=NULL)
    			cout<<head->num<<' ';
    		else
    			cout<<head->num<<endl;
    	head=head->next;
    	}
    	return 0;
    }
    int main()
    {
    	struct node *head1,*head2;
    	int  m,n;
    	cin>>m>>n;
    	head1=creat(m);
    	head2=creat(n);
    	head1=merge(head1,head2);
    	display(head1->next);
    	return 0;
    }
    
    
    /***************************************************
    User name: YT1658506207邵雪源
    Result: Accepted
    Take time: 0ms
    Take Memory: 264KB
    Submit time: 2017-07-31 20:25:25
    ****************************************************/


  • 相关阅读:
    jq 的简单循环
    简单的下拉菜单
    jQ事件
    图片移动
    选中效果
    js 时间
    简单的密码验证
    DOM 的简介 和一些方法
    Java编程思想笔记
    Java并发笔记(二)
  • 原文地址:https://www.cnblogs.com/sxy201658506207/p/7586272.html
Copyright © 2011-2022 走看看