赞
踩
- #include<iostream>
- using namespace std;
- #define MaxSize 50
- #define AX 18
- #define A1 5
- #define B1 5
- typedef int ElemType;//将ElemType定为int类型
- int main()
- {
- typedef struct
- {
- ElemType data[MaxSize];//存放线表中的元素
- int length;//存放线表的长度
-
- }SqList;//顺序表类型
- //建立线表
- int a[AX] = { 1,2,3,4,5,5,7,8,9,10,11,12,13,14,15,16,17,18 };
- int n = 0;//由a中的n个元素建立顺序表
- int i = 0, k = 0;//k表示L中元素的个数,初始值为0
- while (a[i] != NULL)
- {
- i++;
- }
- //printf("%d", n / 2);
- SqList* L = (SqList*)malloc(sizeof(SqList));//分配存放线表的空间
- i = 0;
- while (i < AX)//i 扫描数组a的元素
- {
- L->data[k] = a[i];//将元素a[i]存放到L中
- k++;
- i++;
- }
- L->length = k; //设置L的长度
- //删除重复数据元素
- int h = 0, w = 0, q = 0, count2 = 0;
- for (h = 0; h < L->length; h++)
- {
- ElemType u = L->data[h];
- for (w = h + 1; w < L->length; w++)
- {
- if (u == L->data[w])
- {
- count2++;
- for (q = h + 1; q < L->length; q++)
- {
-
- L->data[q] = L->data[q + 1];
- }
-
- L->length = L->length - count2;
- }
-
- }
- }
- for ( int d = 0; d < L->length; d++)
- {
- printf(" %d ", L->data[d]);
- }
- printf("\n");
- //插入数据元素
- ElemType e;
- cout << "请输入需要插入的一个值:";
- cin >> e;//输入插入的值
- int j;
- int count_1 = 0;
- //SqList* L = (SqList*)malloc(sizeof(SqList));
- while (L->data[count_1] < e)
- {
- count_1++;
- }
- for (j = L->length; j >count_1; j--)
- {
- L->data[j] = L->data[j - 1];
- }
- L->data[count_1] = e;
- L->length++;
- for ( d = 0; d < L->length; d++)
- {
- printf(" %d ", L->data[d]);
- }
- printf("\n");
- //并集
- ElemType A[A1] = { 1,4,2,6,8 };
- ElemType B[B1] = { 2,5,9,6,8};
- SqList LA, LB, LC;
- int ii = 0;
- ii = 0; int kk = 0;
- while (ii < A1)//i 扫描数组a的元素
- {
- LA.data[kk] = A[ii];//将元素a[i]存放到L中
- kk++;
- ii++;
- }
- LA.length = kk; //设置L的长度
-
- ii = 0; kk = 0;
- while (ii < B1)//i 扫描数组a的元素
- {
- LB.data[kk] = B[ii];//将元素a[i]存放到L中
- kk++;
- ii++;
- }
- LB.length = kk; //设置L的长度
-
- int z;
- for (z = 0; z < LA.length; z++)
- {
- LC.data[z] = LA.data[z];
- }
- LC.length = LA.length;
- int count = 0;
-
- for (z = 0; z < LB.length; z++)
- {
- int signb = 1;
- for (int u = 0; u < LC.length + count; u++)
- {
- if (LB.data[z] == LC.data[u])
- {
- signb = 0;
- }
-
- }
- if (signb == 1)
- {
- LC.data[LC.length + count] = LB.data[z];
- count++;
- }
- }
- printf("并集:");
- for ( d = 0; d < LC.length + count; d++)
- {
- printf(" %d ", LC.data[d]);
- }
- printf("\n");
- //差集
- int iii = 0;
- iii = 0; int kkk = 0;
- while (iii < A1)//i 扫描数组a的元素
- {
- LA.data[kkk] = A[iii];//将元素a[i]存放到L中
- kkk++;
- iii++;
- }
- LA.length = kkk; //设置L的长度
-
- //printf("%d", k);
- iii = 0; kkk = 0;
- while (iii < B1)//i 扫描数组a的元素
- {
- LB.data[kkk] = B[iii];//将元素a[i]存放到L中
- kkk++;
- iii++;
- }
- LB.length = kkk; //设置L的长度
-
- //SqList* L = (SqList*)malloc(sizeof(SqList));
- int sign2 = 0;
- for (z = 0; z < LA.length; z++)
- {
- int sign1 = 1;
- for (int c = 0; c < LB.length; c++)
- {
- if (LB.data[c] == LA.data[z])
- {
- sign1 = 0;
- break;
- }
- }
- if (sign1 == 1)
- {
- LC.data[sign2] = LA.data[z];
- sign2++;
- }
- LC.length = sign2;
- }
- printf("A-B的差集:");
- for ( d = 0; d < LC.length; d++)
- {
- printf(" %d ", LC.data[d]);
- }
- printf("\n");
- int sign3 = 0;
- for (z = 0; z < LB.length; z++)
- {
- int sign1 = 1;
- for (int c = 0; c < LA.length; c++)
- {
- if (LA.data[c] == LB.data[z])
- {
- sign1 = 0;
- break;
- }
- }
- if (sign1 == 1)
- {
- LC.data[sign3] = LB.data[z];
- sign2++;
- sign3++;
- }
-
- }
- LC.length =sign3;
- printf("B-A的差集:");
- for ( d = 0; d < LC.length; d++)
- {
- printf(" %d ", LC.data[d]);
- }
- printf("\n");
- //交集
- int iiii = 0; int kkkk = 0;
- while (iiii < A1)//i 扫描数组a的元素
- {
- LA.data[kkkk] = A[iiii];//将元素a[i]存放到L中
- kkkk++;
- iiii++;
- }
- LA.length = kkkk; //设置L的长度
-
- //printf("%d", k);
- iiii = 0; kkkk = 0;
- while (iiii < B1)//i 扫描数组a的元素
- {
- LB.data[kkkk] = B[iiii];//将元素a[i]存放到L中
- kkkk++;
- iiii++;
- }
- LB.length = kkkk; //设置L的长度
- int bsign2 = 0;
- for (z = 0; z < LA.length; z++)
- {
- int sign1 = 1;
- for (int c = 0; c < LB.length; c++)
- {
- if (LA.data[z] == LB.data[c])
- {
- sign1 = 0;
- break;
- }
- }
- if (sign1 == 0)
- {
- LC.data[bsign2] = LA.data[z];
- bsign2++;
- }
- LC.length = bsign2 ;
- }
- printf("交集:");
- for ( d = 0; d < LC.length; d++)
- {
- printf(" %d ", LC.data[d]);
- }
- printf("\n");
- free(L);
- return 0;
- }
-
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。