想不出的错误,你到底在哪

作者在 2011-09-26 08:21:39 发布以下内容
#include<iostream>
using namespace std;
typedef struct LNode{
       int   data;
       struct LNode *next;
}LNode;
      
void createlist_L(LNode *L,int n)
{
     //逆序输入N个元素的值,建立带表头结点的单链表L
     LNode *p;
     int i;
     L=(LNode *)malloc(sizeof(LNode));
     L->next = NULL;//先建立一个带头结点的单链表
     for(i=n;i>0;--i)
     {
          p=(LNode *)malloc(sizeof(LNode));//生成新结点
          scanf("%d",&p->data);
          p->next = L->next;//插入到表头
          L->next = p;
     }
}//creatlist L
void insert(LNode *L,LNode *q)
{
     LNode *p;
     p=(LNode *)malloc(sizeof(LNode));
     p->data=q->data;
     p->next=L->next;
     L->next=p;
  
   
}//插入某 一元素
void Mergelist_L(LNode *La,LNode *Lb){
     //已知的单链表La和Lb的元素按值非递减排列
     //归并La和Lb得到新的单链表Lc,Lc的元素也按值非递减排列。
     LNode *pa,*pb;
     Lc=(LNode *)malloc(sizeof(LNode));
    
     Lc->next=NULL;
     pa=La->next; pb=Lb->next; 
     while(pa && pb)
     {
           if(pa->data < pb->data)
           {
                insert(Lc,pa); pa=pa->next;
           }
           else if(pa->data > pb->data)
           {insert(Lc,pb); pb=pb->next;}
           else {insert(Lc,pa); pa=pa->next; pb=pb->next;} 
     }
   
          while(pa)
          {insert(Lc,pa);  pa=pa->next;}
          while(pb)
          {insert(Lc,pb); pb=pb->next;}//将剩余段插入Lc中
     while(Lc->next!=NULL)
     {
           Lc=Lc->next;
           cout <<Lc->data << " ";
     }
     cout << endl;
}
void mix(LNode *La,LNode *Lb)
{
     LNode *Lc,*pa,*pb;
     Lc=(LNode *)malloc(sizeof(LNode));
     Lc->next=NULL;
     pa=La->next;
     pb=Lb->next;
     while(pa && pb)
     {
           if(pa->data < pb->data)
           {
                 pa=pa->next;
           }
           else if(pa->data > pb->data)
           {     pb=pb->next;}
           else {insert(Lc,pa); pa=pa->next; pb=pb->next;} 
     }
     while(Lc->next!=NULL)
     {
           Lc=Lc->next;
           cout <<Lc->data << " ";
     }
     cout << endl;
}
void differ(LNode *La,LNode *Lb)
{
     LNode *pa,*pb,*Lc;
     Lc=(LNode *)malloc(sizeof(LNode));
     Lc->next=NULL;
     pa=La->next;
     pb=Lb->next;
     while(pa && pb)
     {
           if(pa->data < pb->data)
           {
               insert(Lc,pa); pa=pa->next;
           }
           else if(pa->data > pb->data)
           { pb=pb->next;}
           else { pa=pa->next; pb=pb->next;} 
     }
   
          while(pa)
          {insert(Lc,pa);  pa=pa->next;}
           while(Lc->next!=NULL)
     {
           Lc=Lc->next;
           cout <<Lc->data << " ";
     }
     cout << endl;
}
int main(){
     LNode *La,*Lb,*Lc;
     int a,b;
     cout <<"请输入A链表中元素的数目";
     cin >> a;
     cout <<"请按非递增顺序输入A链表中的元素";
     createlist_L(La,a);
     cout <<"请输入B链表中元素的数目";
     cin >> b;
     cout <<"请按非递增顺序输入B链表中的元素";
     createlist_L(Lb,b);
     cout <<"AnB   ";  mix(La,Lb);
     cout <<"AUB  ";  Mergelist_L(La,Lb);
     differ <<"A-B  "; differ(La,Lb);
      
     return 0;
}
 请求高人帮助,为什么没法运行   
           
默认分类 | 阅读 530 次
文章评论,共0条
游客请输入验证码
文章分类
文章归档
最新评论