From 2bb3949af88a3d9026bb323bb6621aa28d0655a1 Mon Sep 17 00:00:00 2001 From: Jdhggg <24016020834@stu.nsu.edu.cn> Date: Thu, 20 Mar 2025 18:07:55 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E9=A1=BA=E5=BA=8F=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sq_list.c | 30 ++++++++++++++++++++++++++++++ sq_list.h | 4 ++++ 2 files changed, 34 insertions(+) diff --git a/sq_list.c b/sq_list.c index 3a205f9..8a9c478 100644 --- a/sq_list.c +++ b/sq_list.c @@ -75,4 +75,34 @@ void print_sq_list(sq_list* list) for (int i = 0; i < list->length; i++) printf("%d ", list->data[i]); printf("\n"); +} + +// 2 到 1 +void merge_sq_list(sq_list* list_1, sq_list* list_2) +{ + if (list_1->data == 0 || list_2->length == 0) + { + printf("有一个空表\n"); + return; + } + if ((list_1->length + list_1->length) > MAX) + printf("总和超范围\n但是会继续合并只不过可能为有损合并\n"); + int flog = list_2->length; + for (int i = 0; i < list_2->length; i++) + { + + for (int j = 0; j < list_1->length; j++) { + if (list_1->data[j] == list_2->data[i]) + break; + else + { + list_1->data[list_1->length] = list_2->data[i]; + list_1->length++; + flog--; + break; + } + } + + } + printf("有%d相同 有%d不相同\n", flog, list_2->length - flog); } \ No newline at end of file diff --git a/sq_list.h b/sq_list.h index 33c9e1c..25c0939 100644 --- a/sq_list.h +++ b/sq_list.h @@ -2,6 +2,7 @@ #define SQ_LIST_H #define MAX 100 + typedef struct sq_list { int data[MAX]; @@ -23,5 +24,8 @@ void insert_sq_list(sq_list* list, int pos, int value); // 打印 void print_sq_list(sq_list* list); +// 合并顺序表 +void merge_sq_list(sq_list* list_1, sq_list* list_2); + #endif