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

📄 24-list2.c

📁 试验要求: 已知A
💻 C
字号:
#include<stdio.h>
#include<stdlib.h>
#define LIST_INIT_SIZE  100
#define LISTINCREMENT   10
#define null 0

typedef struct{       /*线性表的动态分配顺序存储结构,书上22页*/
   int *elem;
   int length;
   int listsize;
   }SqList;

void InitList_Sq(SqList *L)        /*顺序表的初始化操作,书上23页*/
{
 L->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
 if(!L->elem) exit(-1);
 L->length = 0;
 L->listsize = LIST_INIT_SIZE;
}

void DeleteList_Sq(SqList *L,int e)    /*删除LA里的元素e,e是LB和LC里公有元素,书上24页*/
{
        int i=0;
        for(i=0;i<L->length;i++)
        {
            if(L->elem[i]>e)
            break;
            else if(L->elem[i]<e)
            continue;
            else
             {
              int *p,*q;
              p=&(L->elem[i]);
              q=&(L->elem[L->length-1]);
              for(++p;p<=q;++p) *(p-1)=*p;
              --L->length;
             }
        }
}

void InputNumberList_Sq(SqList *L,int num)   /*从键盘输入集合元素*/
{
     int i;
     L->length=num;
     for(i=0;i<L->length;i++)
        scanf("%d",&L->elem[i]);
}

void PrintList_Sq(SqList *L)    /*输出集合元素*/
{
        int i;
        if(L->length!=0)
        {
        for(i=0;i<L->length;i++)
            printf("%d  ",L->elem[i]);
        }
        else
        printf("NULL");
}

void SearchSame_Sq(SqList *LA,SqList *LB,SqList *LC)
/*查找LB和LC里的公有元素,并从LA里删除*/
{
      int j,k;
      int lb,lc,e;
      for(j=0;j<LB->length;j++)
      {
       lb=LB->elem[j];
       for(k=0;k<LC->length;k++)
       {
        lc=LC->elem[k];
        if(lb<lc)
        break;
        else if(lb>lc)
        continue;
        else
        {e=lb;
        DeleteList_Sq(LA,e);
        }
       }
      }
}

void main()
{
   int num1,num2,num3;
  SqList* LA,*LB,* LC;
  InitList_Sq(LA);
  InitList_Sq(LB);
  InitList_Sq(LC);
  printf("The Number Of LA:");
  scanf("%d",&num1);
  printf("Input LA:");
  InputNumberList_Sq(LA,num1);
  printf("\nThe Number Of LB:");
  scanf("%d",&num2);
  printf("Input LB:");
  InputNumberList_Sq(LB,num2 );
  printf("\nThe Number Of LC:");
  scanf("%d",&num3);
  printf("Input LC:");
  InputNumberList_Sq(LC,num3);
  SearchSame_Sq( LA,LB,LC);
  printf("\nOUT:");
  PrintList_Sq(LA);
  getch();
}

⌨️ 快捷键说明

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