⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 链表.txt

📁 利用vc开发工具
💻 TXT
字号:
#include<stdio.h>
#include<malloc.h>
#include<iostream.h>
typedef int elemtype;
typedef struct Lnode
{
    elemtype data;
    struct Lnode *next;
}lnode,*linklist;

linklist creastlist(linklist head)
{
    elemtype temp;
    linklist p;
      cout<<"请输入结点值(输入0结束)"<<endl;
         cin>>temp;
    while(temp!=0)
    {
        p=new lnode;
        p->data=temp;
        p->next=head->next;
        head->next=p;
        cin>>temp;
    }

}

linklist merglist(linklist &La,linklist &Lb)
{
    linklist pa,pb,pc,Lc;
    pa=La->next;
      Lc=pc=La;
    while(pa)
    {
        pb=Lb->next;
        while(pb){
                  if(pa->data==pb->data)
                        {
                                pc->next=pa;
                                 pc=pa;
                                  pa=pa->next;
                        }
                        else
                  pb=pb->next;

                  }
         if(!pb)
                pa=pa->next;
             }
         pc->next=NULL;

        delete(Lb);
        return Lc;
}


elemtype locateelem(linklist La,elemtype e)
{
    linklist pa;
    pa=La->next;
    while(pa)
    {
        if(pa->data==e)
        return 1;
        else
        pa=pa->next;
    }
    return 0;
}


linklist bingji(linklist La,linklist Lb)
{
    linklist pa,pb,s;

    pa=La->next;
    pb=Lb->next;
    while(pb)
    {
        if(!locateelem(La,pb->data))
        {
        s=new lnode;
        s->data=pb->data;
        s->next=La->next;;
        La->next=s;
        }
        pb=pb->next;
    }
    return La;
}

linklist chaji(linklist La,linklist Lb)
{
    linklist pa,pb,q;

    pb=Lb->next;
    while(pb)
    {
        if(locateelem(La,pb->data))
        {
         pa=La->next;
          while(pa)
           {

              if(pa->data!=pb->data)
              {
              q=pa;
              pa=pa->next;
              }
            else
              {
               q->next=pa->next;
               delete pa;
               break;
              }
            }
        }
        pb=pb->next;
    }
    return La;
}



void print(linklist head)
{
    linklist p;
    p=head->next;

        while(p)
        {
            cout<<p->data<<" ";
                p=p->next;
        }
}

char Menu()
{
     char ch;
     cout<<endl<<"----------集合----------"<<endl;
     cout<<"1、求集合的交集"<<endl;
     cout<<"2、求集合的并集"<<endl;
     cout<<"3、求集合的差集"<<endl;
     cout<<"0、退出系统"<<endl<<endl;
     cout<<"输入你的选择"<<endl;
     cin>>ch;
     return ch;
}


int main()
    {
        linklist La,Lb,Ld;
        char ch;

        ch=Menu();
        while(1)
        {
        switch(ch)
        {
                  case'1':
                          La=new lnode;
                          Lb=new lnode;
                          La->next=NULL;
                          Lb->next=NULL;
                           creastlist(La);
                          creastlist(Lb);
                           Ld=merglist(La,Lb);
                            print(Ld);
                            break;
                  case'2':
                         La=new lnode;
        Lb=new lnode;
        La->next=NULL;
        Lb->next=NULL;
        creastlist(La);
        creastlist(Lb);
        Ld=bingji(La,Lb);
        print(Ld);
        break;
                  case'3':
                      La=new lnode;
        Lb=new lnode;
        La->next=NULL;
        Lb->next=NULL;
        creastlist(La);
        creastlist(Lb);
        Ld=chaji(La,Lb);
        print(Ld);
        break;
                  case'0':
                          exit(0);
                          break;
                          default:
                          cout<<"输入错误,请再输入一遍:"<<endl;
                          break;


        }
        cout<<"输入你的选择"<<endl;
        cin>>ch;


        }
         return 1;

    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -