顺序表公共元素查找 c语言完整代码
时间: 2023-04-07 22:00:40 浏览: 63
以下是顺序表公共元素查找的 C 语言完整代码:
#include <stdio.h>
#define MAXSIZE 100 // 定义顺序表的最大长度
typedef struct {
int data[MAXSIZE]; // 存储数据元素
int length; // 当前长度
} SqList;
void InitList(SqList *L) { // 初始化顺序表
L->length = 0;
}
void CreateList(SqList *L, int n) { // 创建顺序表
int i;
printf("请输入 %d 个整数:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &L->data[i]);
}
L->length = n;
}
void FindCommonElements(SqList L1, SqList L2, SqList *L3) { // 查找公共元素
int i, j, k = 0;
for (i = 0; i < L1.length; i++) {
for (j = 0; j < L2.length; j++) {
if (L1.data[i] == L2.data[j]) {
L3->data[k++] = L1.data[i];
break;
}
}
}
L3->length = k;
}
void PrintList(SqList L) { // 输出顺序表
int i;
for (i = 0; i < L.length; i++) {
printf("%d ", L.data[i]);
}
printf("\n");
}
int main() {
SqList L1, L2, L3;
int n1, n2;
printf("请输入第一个顺序表的长度:");
scanf("%d", &n1);
CreateList(&L1, n1);
printf("请输入第二个顺序表的长度:");
scanf("%d", &n2);
CreateList(&L2, n2);
InitList(&L3);
FindCommonElements(L1, L2, &L3);
printf("两个顺序表的公共元素为:");
PrintList(L3);
return 0;
}