sq_list合并函数

This commit is contained in:
Jdhggg 2025-03-20 20:48:08 +08:00
parent a3cedae39a
commit 285c764123
6 changed files with 15 additions and 18 deletions

View File

@ -1,6 +1,2 @@
 linked_list.c  sq_list.c
C:\code\lencode\Project2\linked_list.c(31,24): warning C4028: 形参 1 与声明不同
C:\code\lencode\Project2\linked_list.c(59,2): warning C4047: “return”:“address_node *”与“int”的间接级别不同
sq_list.c
正在生成代码...
Project2.vcxproj -> C:\code\lencode\Project2\Debug\Project2.exe Project2.vcxproj -> C:\code\lencode\Project2\Debug\Project2.exe

View File

@ -80,36 +80,37 @@ void print_sq_list(sq_list* list)
// 2 到 1 // 2 到 1
void merge_sq_list(sq_list* list_1, sq_list* list_2) void merge_sq_list(sq_list* list_1, sq_list* list_2)
{ {
if (list_1->data == 0 || list_2->length == 0) if (list_1->length == 0 || list_2->length == 0)
{ {
printf("有一个空表\n"); printf("有一个空表\n");
return; return;
} }
if ((list_1->length + list_1->length) > MAX) if ((list_1->length + list_2->length) > MAX)
printf("总和超范围\n但是会继续合并只不过可能为有损合并\n"); printf("总和超范围\n但是会继续合并只不过可能为有损合并\n");
int flog = list_2->length; int flog = 0;
for (int i = 0; i < list_2->length; i++) for (int i = 0; i < list_2->length; i++)
{ {
for (int j = 0; j < list_1->length; j++) { for (int j = 0; j < list_1->length; j++)
{
if (list_1->data[j] != list_2->data[i]) if (list_1->data[j] != list_2->data[i])
continue; continue;
else if (list_1->data[j] != list_2->data[i]) else if (list_1->data[j] == list_2->data[i])
break; {
flog++; break;
}
else else
{ {
list_1->data[list_1->length] = list_2->data[i]; list_1->data[list_1->length] = list_2->data[i];
list_1->length++; list_1->length++;
flog--;
break;
} }
} }
} }
printf("有%d相同 有%d相同\n", flog, list_2->length - flog); printf("有%d相同 有%d相同\n", flog, list_2->length - flog);
} }
/*ist_1->data[list_1->length] = list_2->data[i]; //if (list_1->data[j] != list_2->data[i])
list_1->length++; //continue;
flog--; //else if (list_1->data[j] == list_2->data[i])
break;*/ //break;