• 大小: 287KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: C/C++
  • 标签: 交并差  c++  

资源简介

运用C++实现的小程序,集合的交并差运算。大一时候的一个小课设。可以运行,有exe

资源截图

代码片段和文件信息

#include
#include
using namespace std;
typedef struct LNode//定义单链表结点
{
   char data;
   struct LNode *next;
} LNode*linklist;
void creatlist(linklist &lchar a[]int n)//(后插法)建立单链表
{
    linklist sr;int i;
    l=new LNode;
    l->next=NULL;
    r=l;

  for(i=0;i  {
      s=new LNode;
      s->data=a[i];
      r->next=s;
      r=s;
  }
  r->next=NULL;
}
void Sort(linklist l)//选择排序法
{
   linklist pqsmall;
     int temp;
  for(p = l->next; p->next != NULL; p = p->next)
    {
        small = p;
        for(q = p->next; q; q = q->next)
        {
            if(q->data < small->data)
               small = q;
        }
        if(small != p)
        {
            temp = p->data;
            p->data = small->data;
            small->data = temp;
        }
    }
}
void shanchu(linklist &head)//删除链表中重复元素
  {
      linklist p=head->nextr=headqf;
   while(p->next)
   {
       if(p->data==p->next->data||((p->next->data>‘z‘)||(p->next->data<‘a‘)))
           {
               q=p->next;
               p->next=q->next;
               delete(q);
           }
        else
            p=p->next;
   }
   if(r->next->data>‘z‘||r->next->data<‘a‘)
   {
       f=r->next;
       r->next=f->next;
       delete(f);
   }
}
void bing(linklist halinklist hblinklist hc)//求并集
{
    linklist papbpc;
    pa=ha->next;
    while(pa!=NULL)
    {
        pc=new LNode;
        pc->data=pa->data;
        pc->next=hc->next;
        hc->next=pc;
        pa=pa->next;
    }
    pb=hb->next;
    while (pb!=NULL)
    {
        pa=ha->next;
        while((pa!=NULL)&&(pa->data!=pb->data))
        {
          pa=pa->next;
          if(pa==NULL)
          {
            pc=new LNode;
            pc->data=pb->data;
            pc->next=hc->next;
            hc->next=pc;
        }
        }
        pb=pb->next;
    }
}
void jiao(linklist halinklist hblinklist &hc)//求交集
{
   linklist pa=ha->nextpbstc;
   hc=new LNode;
   tc=hc;
  while (pa)
  {
      pb=hb->next;
      while(pb&&pb->datadata)
        pb=pb->next;
      if(pb&&pb->data==pa->data)
      {
          s=new LNode;
          s->data=pa->data;
          tc->next=s;
          tc=s;
      }
      pa=pa->next;
  }
  tc->next=NULL;
}
void cha(linklist halinklist hblinklist&hc)//求差集
{
    linklist pa=ha->nextpbstc;
    hc=new LNode;
    tc=hc;
  while (pa)
  {
      pb=hb->next;
      while(pb&&pb->datadata)
        pb=pb->next;
      if(!(pb&&pb->data==pa->data))
      {
          s=new LNode;
          s->data=pa->data;
          tc->next=s;
          tc=s;
      }
      pa=pa->next;
  }
  tc->next=NULL;
}
void dislist(linklist l)//输出函数
{
    linklist p;
    p=l->next;
    while(p!=NULL)
    {
        cout<data;
        p=p->next;
    }
    cout<}
int  main()
{
    linklist hahbhc;
    char a[50]b[50];
    int lalbx;

评论

共有 条评论