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

📄 习题7-顺序表并集运算.c

📁 数据结构各章实验源代码; 数据结构实验源代码
💻 C
字号:
# include   "datastru.h"
# include   <stdio.h>

int  insert (SEQUENLIST *a,  DATATYPE1 x,  int  i ){
/*将x元素插在a表的指定的i的位置上*/
 int  k;
 if ( i < 1 || i > a->last + 1 || a->last >= MAXSIZE)
   return  0;
 else {
      for ( k = a->last ; k >= i ; k --)
	     a->datas[ k+1 ] = a->datas[k];
      a->datas[i] = x;
      a->last++;
      return 1; }
 }

int  locate (SEQUENLIST *a,  DATATYPE1 x){
/*x元素在a表中,返回x元素所在位置k;否则返回0*/
  int k;

  k = 1;
  while  (k <= a->last && a->datas[k] != x )
    k++;
  if ( k <= a->last)
    return k ;
  else  return 0;
}

void  unite ( SEQUENLIST *la,  SEQUENLIST lb)
{
   int  i;
   for ( i = 1 ; i <= lb.last ; i++)
     if(! locate(la,lb.datas[i]))              /*如果lb表中元素不在la表中,*/
	insert ( la, lb.datas[i], la->last + 1);   /*则将lb表中的该元素插到la表的最后*/
}

main( )
{  SEQUENLIST  a, b;
   int  i, j, k;

printf("请输入la顺序表元素,元素为整型量,用空格分开,-99为结束标志 :");
j = 0;  k = 1;  i = 0; scanf("%d",&i);
while (i != -99) { j++;  a.datas[k] = i;  k++;  scanf("%d",&i); }         /*输入la顺序表元素*/
a.last = j;
printf("\nla顺序表元素列表 :");
for (i = 1; i<=a.last; i++)
   printf("%d ",a.datas[i]);
printf("\n");
printf("\n请输入lb顺序表元素,元素为整型量,用空格分开,-99为结束标志 :");
j = 0;  k = 1;  i = 0; scanf("%d",&i);
while (i != -99) { j++;  b.datas[k] = i;  k++;  scanf("%d",&i); }         /*输入lb顺序表元素*/
b.last = j;
printf("\n\nlb顺序表元素列表 :");
for (i = 1; i<=b.last; i++)
   printf("%d ",b.datas[i]);
printf("\n");
unite (&a, b);                                                            /*la顺序表和lb顺序表合并*/
printf("\n\n顺序表并集后la (la U lb) = ");
   for (i = 1; i <= a.last; i++)
     printf("  %d",a.datas[i]);
printf("\n");
}

⌨️ 快捷键说明

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