合并顺序表

This commit is contained in:
Jdhggg 2025-03-20 18:07:55 +08:00
parent 88a7808b0b
commit 2bb3949af8
2 changed files with 34 additions and 0 deletions

View File

@ -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);
}

View File

@ -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