From b67132153550e8f9b4f89fb7efe1aa8bdd7a9074 Mon Sep 17 00:00:00 2001 From: Launchcore Date: Fri, 8 Mar 2024 08:41:13 +0800 Subject: [PATCH] 2024-3-8 Add Union & Fix --- homework240306/main.cpp | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/homework240306/main.cpp b/homework240306/main.cpp index 883feed..f99974c 100644 --- a/homework240306/main.cpp +++ b/homework240306/main.cpp @@ -2,6 +2,38 @@ using namespace std; #include "SqList.h" template +bool CreateListNoRepeat(SqList
& L, int n) +{ + int i; + if (n > L.size) + { + cout << "元素个数大于表长,不能创建!" << endl; + return false; + } + cout << "请依次输入" << n << "个元素值:" << endl; + for (i = 1; i <= n; i++) + { + int temp; + cin >> temp; + if (LocateElem_e(L, temp) > 0) i--; + else L.elem[i - 1] = temp; + L.length++; + } + L.length = n; + return true; +} +template +void Union(SqList
& A, const SqList
& B) +{ + for (int i = 0; i < B.length; ++i) + { + if (LocateElem_e(A, B.elem[i]) == 0) + { + InsertElem_i(A, A.length + 1, B.elem[i]); + } + } +} +template void Intersection(SqList
& A, const SqList
& B) { int k = 0; @@ -23,14 +55,18 @@ int main() int length_a, length_b; cout << "请输入集合A的元素个数: "; cin >> length_a; - CreateList(A, length_a); + CreateListNoRepeat(A, length_a); cout << "请输入集合B的元素个数: "; cin >> length_b; - CreateList(B, length_b); + CreateListNoRepeat(B, length_b); cout << "集合A: "; DispList(A); cout << "集合B: "; DispList(B); + Union(A, B); + cout << "A∪B: "; + DispList(A); + A.length = length_a; // Reset A to its original length Intersection(A, B); cout << "A∩B: "; DispList(A);