合并顺序表
This commit is contained in:
parent
88a7808b0b
commit
2bb3949af8
30
sq_list.c
30
sq_list.c
@ -75,4 +75,34 @@ void print_sq_list(sq_list* list)
|
|||||||
for (int i = 0; i < list->length; i++)
|
for (int i = 0; i < list->length; i++)
|
||||||
printf("%d ", list->data[i]);
|
printf("%d ", list->data[i]);
|
||||||
printf("\n");
|
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);
|
||||||
}
|
}
|
@ -2,6 +2,7 @@
|
|||||||
#define SQ_LIST_H
|
#define SQ_LIST_H
|
||||||
#define MAX 100
|
#define MAX 100
|
||||||
|
|
||||||
|
|
||||||
typedef struct sq_list
|
typedef struct sq_list
|
||||||
{
|
{
|
||||||
int data[MAX];
|
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 print_sq_list(sq_list* list);
|
||||||
|
|
||||||
|
// ºÏ²¢Ë³Ðò±í
|
||||||
|
void merge_sq_list(sq_list* list_1, sq_list* list_2);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user