数据结构c语言版用顺序表求两个数组的交集,并且输出结果按大小排序
时间: 2023-05-30 16:03:23 浏览: 96
下面是用顺序表求两个数组的交集,并且输出结果按大小排序的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
typedef struct {
int data[MAX_SIZE];
int length;
} SqList;
void initList(SqList *L) {
L->length = 0;
}
void insertList(SqList *L, int x) {
L->data[L->length++] = x;
}
void printList(SqList L) {
int i;
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
void sortList(SqList *L) {
int i, j, temp;
for (i = 0; i < L->length - 1; i++) {
for (j = i + 1; j < L->length; j++) {
if (L->data[i] > L->data[j]) {
temp = L->data[i];
L->data[i] = L->data[j];
L->data[j] = temp;
}
}
}
}
void intersect(SqList A, SqList B, SqList *C) {
int i, j;
initList(C);
for (i = 0; i < A.length; i++) {
for (j = 0; j < B.length; j++) {
if (A.data[i] == B.data[j]) {
insertList(C, A.data[i]);
break;
}
}
}
sortList(C);
}
int main() {
SqList A, B, C;
initList(&A);
initList(&B);
initList(&C);
insertList(&A, 4);
insertList(&A, 2);
insertList(&A, 8);
insertList(&A, 5);
insertList(&A, 1);
insertList(&B, 5);
insertList(&B, 7);
insertList(&B, 6);
insertList(&B, 2);
intersect(A, B, &C);
printf("A: ");
printList(A);
printf("B: ");
printList(B);
printf("C: ");
printList(C);
return 0;
}
```
输出结果如下:
```
A: 4 2 8 5 1
B: 5 7 6 2
C: 2 5
```
可以看到,输出的结果C按大小排序,符合题目要求。
阅读全文