数据结构合并线性表!!!急急急!求大神练手!!

(合并有序表)已知线性表La和Lb中元素分别按非递减顺序排列,现要求将它们合并成一个新的线性表Lc,并使得Lc中元素也按照非递减顺序排列。要求:1.用带头结点的单链表实现... (合并有序表)已知线性表La和Lb中元素分别按非递减顺序排列,现要求将它们合并成一个新的线性表Lc,并使得Lc中元素也按照非递减顺序排列。要求:1.
用带头结点的单链表实现有序表的合并,不能增加额外的空间存储合并数据
2. 节点定义要求:
struct node { int value; struct node * next; }; typedef struct node Node;
typedef struct node *ptrList,*List;
3. 输入格式:
线性表a的长度 线性表a的所有元素
线性表b的长度 线性表b的所有元素
输出格式:
排序后的线性表a所有元素
排序后的线性表b的所有元素
排序后的合并线性表的所有元素
输入输出格式要求续:
(1)用英文逗号分隔元素,输出完一个线性表后回车换行。
(2)线性表为空时,输出NULL(大写)
(3)任意多余输出视为错误。
例:
输入
5 1 2 3 4 5
5 6 7 8 9 10
输出
1,2,3,4,5
6,7,8,9,10
1,2,3,4,5,6,7,8,9,10
输入输出格式要求
如果链表为空,则输出NULL(大写)
例:
输入
5 1 2 3 4 5
0
输出
1,2,3,4,5
NULL
1,2,3,4,5
合并有序表的函数名称:MergeSortedList
函数参数:A集合的单链表头指针与B集合单链表的头指针,
函数返回值:合并后的单链表的头指针
展开
 我来答
扈怀炜4h
推荐于2016-02-02 · TA获得超过6039个赞
知道大有可为答主
回答量:6907
采纳率:67%
帮助的人:1364万
展开全部
     #include <iostream>
     using namespace std;
     
 struct node 
 { 
   int value;  
   struct node * next; 
 };
 typedef struct node Node; 
     //typedef struct node *ptrList,*List; 
     
     Node * create()
     {
      int n;
      int i=0;
      Node *head=NULL,*p,*q;
      cin>>n;
      while(i<n)
      {
      p=new Node;
      cin>>p->value;
      p->next=NULL;
      if(head==NULL)
      {
      head=p;
      q=p;
      }
      else
      {
      q->next=p;
      q=p;
      }
        i++;
     }   
         return head;
     }
     
     void show(Node *head)
     {
      Node *p=head;
      if(p==NULL)
      {
      cout<<"NULL"<<endl;
      exit(0);
    }
        while(p!=NULL)
        {
           cout<<p->value<<",";
   p=p->next;
         }
 cout<<endl;
     }
     
    Node * mergelist(Node *La,Node *Lb)
    {
     node *p;
     p=La;
     if(p==NULL)
        return Lb;
     while(p->next!=NULL)
            p=p->next;
     p->next=Lb;
     return La;
}

int main()
{
Node *h1,*h2;
h1=create();
h2=create();
show(h1);
show(h2);
h1=mergelist(h1,h2);
show(h1);
return 0;
}

 

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式