毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

单链表的交并差 第2页

更新时间:2007-10-20:  来源:毕业论文

 for(i=1;i<len;i++)
       {
         if(d[i]==d[i+1])
          {
           printf("Don't allow the same data! Please reinput!");
           goto input;
          }
       }
    creat(&*L);
    for(i=1;i<=len;i++)
       {
         insert(&*L,i,d[i]);
       }
    printf("The data of the linktable is:  ");
    display(&*L);
   
}
/*复制链表L1到L2*/
void copy(struct Lnode **L1,struct Lnode **L2 )
{

  int i,len;
  ElemType t;
  len=lenth(&*L1);
  creat(&*L2);
    for(i=1;i<=len;i++)
       {
         t=get(&*L1,i);
         insert(&*L2,i,t);
       }
}
/*求交集*/
void intersection(struct Lnode **L1,struct Lnode **L2,struct Lnode **L3)
{   
     
     int i,j,k=1;
     struct Lnode *t1,*t2;
     t1=*L1;
     t2=*L2;
     creat(&*L3);
     for(i=1;i<=lenth(&*L1);i++)
      {
       for(j=1;j<=lenth(&*L2);j++)
        {
          if(t1->data==t2->data)
            {
              insert(&*L3,k,t1->data);
              k++;
            }
          t2=t2->next;
        }
      t1=t1->next;
      t2=*L2;
     }

}
/*求并集*/
unionset(struct Lnode **L1,struct Lnode **L2,struct Lnode **L3)
{/*把L1复制到L3,然后比较L2与L3,得到L2在L3中没有的元素在L3中的位置,并插入*/
  int i,j,k;
  struct Lnode *tt,*t2,*t3;
  creat(&*L3);
  copy(&*L1,&*L3);
  t2=*L2;
  t3=*L3;
  for(i=1;i<=lenth(&*L2);i++)
      {
       k=1;
       for(j=1;j<=lenth(&*L3);j++)
        {
          if(t2->data==t3->data)
           {
             k=0;
             break;
           }
          else if(t2->data<t3->data)
           {
             break;
           }
          else if(t2->data>t3->data)
           {
             k++;
             if(k<=lenth(&*L3))
             {
              t3=t3->next;
             }
           }
        }
       if(k>0&&k<=lenth(&*L3))
       {/*插在排序的位置上*/
         insert(&*L3,k,t2->data);
       }
       else if(k>lenth(&*L3))
       {/*插在链尾*/
         tt=(struct Lnode *)malloc(sizeof(struct Lnode));
         tt->data=t2->data;
         tt->next=null;
         t3->next=tt;
       }
       t2=t2->next;
       t3=*L3;
      }
}
/*求差集*/
void diffrenceset(struct Lnode **L1,struct Lnode **L2,struct Lnode **L3)
{
/*将第一个复制到第三个,查找第二个在第三个中有的元素,并确定它在第三个中的位置,然后从第三个中删除*/
  int i,t,n;
  creat(&*L3);
  copy(&*L1,&*L3);
  for(i=1;i<=lenth(&*L2);i++)
   {
     t=get(&*L2,i);
     n=locate(&*L3,t);
     if(n)
     {
      delete(&*L3,n);
     }
   }
}
main()
{
  int len1,len2;
  char r;
  static struct Lnode *head1,*head2,*head3,*head4,*head5,*head6;
  printf("/************************************************************************/\n");
  printf("Please input the lenth of the first linktable!  ");
  scanf("%d",&len1);
  printf("/************************************************************************/\n");
  printf("The lenth of the first linktable is %d,please input %d int data!  ",len1,len1);
  init(&head1,len1);
  printf("/************************************************************************/\n");

上一页  [1] [2] [3] 下一页

单链表的交并差 第2页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。