问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据结构,求大神,哪错了(合并La,Lb)

发布网友 发布时间:2022-04-25 20:23

我来回答

1个回答

热心网友 时间:2022-06-17 03:24

下面的代码是在你的代码上面改的,你写的代码实在太冗余了,创建链表一个函数不就可以了,你写了两个,这部分没修改啊,你自己再想想。另外合并链表的函数是做了一下修改,满足你的要求(1),你看看。

 #include"stdio.h"
#include"malloc.h"
#define  ERROR -1
#define OK 1
//#define NULL 0 //NULL值已有,可以不用定义
typedef int Status;
typedef struct structLNode{ //少struct        
        int  data;         
        struct structLNode  *next;//定义错误 
} LNode, *LinkList;
LinkList La;LinkList Lb;
LNode *creat_La()

      LNode *head,*p;         
      La=head=(LNode*)malloc(sizeof(LNode));//带头指针         
      int n,i;   //i提前定义 
      printf("请输入将要输入La的元素个数n: \n");         
      scanf("%d",&n);         
      for(i=0;i<n;i++)         
      {                   
                          p=(LNode*)malloc(sizeof(LNode));                   
                          printf("请输入链表的第%d个数: ",i+1);                   
                          scanf("%d",&(p->data));                   
                          La->next=p;                   
                          La=p;         
      }         
      La->next=NULL;         
      return head;
}
/* creat_L  */
LNode *creat_Lb(){ 
      LNode *head,*p;         
      Lb=head=(LNode*)malloc(sizeof(LNode));//带头指针         
      int n,i;    
      printf("请输入将要输入Lb的元素个数n: \n");         
      scanf("%d",&n);         
      for(i =0;i<n;i++)         
      {                   
                          p=(LNode*)malloc(sizeof(LNode));                   
                          printf("请输入链表的第%d个数: ",i+1);                   
                          scanf("%d",&p->data);                   
                          Lb->next=p;                   
                          Lb=p;         
      }         
      
      Lb->next=NULL;         
      return head;
}
/* creat_L  */
void Mergelist_L(LinkList La,LinkList Lb,LinkList *Lc)//少空格 ,Lc定义修改 
{         
           LinkList pa, pb, pc,p;   
            
           *Lc=La;//初始化Lc,另起一个链表
           pc=*Lc;   
              
           pa=La->next;pb=Lb->next;        
           
           while(pa&&pb)         
           {                   
                               if((pa->data) < (pb->data))   //去除等号                
                               {                            
                                                            pc->next = pa; 
                                                            pa = pa->next;
                                                            pc=pc->next;
                                                                             
                               }                   
                               else if((pa->data) > (pb->data)) 
                               {               
                                                            pc->next = pb; 
                                                            pb = pb->next;
                                                            pc=pc->next;               
                               } 
                               else
                               {
                                                            pc->next = pa; 
                                                            pa = pa->next;
                                                            pc=pc->next;
                                                            
                                                            p=pb;
                                                            pb = pb->next;
                                                            free(p);
                               }    
           }         
           
           pc->next =  pa?pa:pb;
           
           free(La);
           free(Lb);


/* 输出单链表中的数据元素*/
void out_L(LNode*L)
{
      LNode*p=L->next;  
      printf("线性链表为:");
      
      while(p!=NULL)         
      {                   
                          printf("%d  ",p->data);                   
                          p=p->next ;         
      }         
      printf("\n");  
} /* out_link */
int main()
{   
    LNode *L;         
    LNode *La,*Lb,*Lc;  // 定义为 LNode 类型         
    
    La=creat_La();  //返回值       
    Lb=creat_Lb();     
    out_L(La);
    out_L(Lb); 
         
    Mergelist_L(La,Lb,&Lc);  
    out_L(Lc);
    getch();
    return 0;
}

满足你的要求希望采纳啊!呵呵。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
四万元没开发票税务局发多少钱 不给开发票这个情节要罚多少钱? 广东乌龙茶的种类 银行什么时候拉征信 600795国电电力,为什么在2010年4,5月突然从8块跌到4块呢?涨幅-50%... 学习很差怎么逆袭 高考文科差生五十天冲刺计划!!! ...漂亮女人,那些不大漂亮的还很善良有点丑的怎么办?她们不是很可怜吗... CS1.6 AWP经典的FRAG视频 求链接 ...大家谁有AWP的视频或者DEMO,要个看看,学学,谢谢!~ 一首英文歌,高潮是啦啦啦啦啦啦啦啦啦啦啦的 PADS laout 接插件上的测试点怎么删除 thinking out loud中文翻译是什么意思 lalala英文歌是什么? 有谁知道这首歌是什么名字吗? out of politeness是什么意思 fill out、fill up、fill in 有什么区别吗? 在电工学里 in out aux ac 是指什么意思? Coldplay的《Sparks》 歌词 新学PADS Laout,层设置里面有一个布线方向选择,这个方向有什么影响 think out loud是什么意思 “OUT&amp;amp;quot;LA1. 什么意思 OutDia是什么意思 一年期住院医疗保险哪家好? 海运货物投保人在投保时必须对该货物拥有保险利益。 求海运货物保险类别详解~!!! 简述我国海运货物保险的三种基本险别的赔偿范围 中国人民保险公司海运货物保险条款 积分能不能卖掉? 谁能告诉我 淘宝的积分是怎么卖的? 收音机上有llne out是什么意思? shut the hellla out 有谁会自己编辑俄罗斯方块游戏? 世界上最早的火车是马拉火车哪最早有没有发明出来人力火车呀? 火车影响风水,用马拉火车岂不更好? 电影《让子弹飞》中“马拉火车”的场景,在中国唐胥铁路建成通车后,的确出现过清*认为火车的运行会破 世界最早有马拉火车哪最早有没有人力火车呀? 关于莲的名言、诗词、文章有哪些? 马拉火车与洋务运动的封建性? 唐胥铁路修筑背景是什么~马拉火车说明了什么问题 3G在中国已经比较普遍了,但是与国外相比,中国的3G就像“马拉火车”一样,力不从心,不能达到预期的效果 OKWAP A279 这款手机的价钱是多少 让子弹飞里面一开始冯小刚 让做首诗,要有风、要有肉、要有火锅要有雾,要有美女要有驴,谁能做出来? 《让子弹飞》最后假麻子说“个子高的被我给锯了,比矮的还矮。”“比矮的还矮”是什么意思? 让子弹飞,马邦德死前要说的两件事是什么? 让子弹飞最后的结局咋没看懂,最后,为啥那几个人要走?葛优说的两个秘密... 吃着火锅唱着歌突然就被麻匪劫了是什么意思? 顾子明解读《让子弹飞》深度解析是什么? 《让子弹飞》包含了哪些深层意义? 让子弹飞的隐喻