用c语言编写一个算法函数void Sprit(SeqList L1,SeqList *L2,SeqList *L3),将顺序表L1中的数据进行分类,奇数存放到存到顺序表L2中,偶数存到顺序表L3中,编写main()函数进行测试
时间: 2024-09-15 07:06:37 浏览: 50
首先,我们需要定义一个辅助函数`insert_sorted`,用于在指定的顺序表中插入元素并保持有序。然后我们编写`sprit`函数,根据给定规则对顺序表进行分类。最后,在`main`函数中创建三个顺序表,并测试`sprit`函数的功能。
```c
#include "seqlist.h"
// 辅助函数,将元素插入有序顺序表
void insert_sorted(SeqList *list, int value) {
if (list->size == 0 || value < list->data[list->head]) {
list->data[++list->head] = value;
} else {
int i = list->head;
while (i < list->size && value > list->data[i + 1]) {
list->data[i] = list->data[i + 1];
i++;
}
list->data[i] = value;
}
}
// 主要函数,按照奇偶性分类
void sprit(SeqList L1, SeqList *L2, SeqList *L3) {
for (int i = 0; i < L1.size; i++) {
if (L1.data[i] % 2 == 0) {
insert_sorted(L3, L1.data[i]);
} else {
insert_sorted(L2, L1.data[i]);
}
}
}
// 主函数测试
int main() {
SeqList L1, L2, L3;
// 初始化 L1
// ... (这里填充 L1 的数据)
sprit(L1, &L2, &L3);
printf("After sorting:\n");
print_seq_list(&L1, "L1 (even)");
print_seq_list(L2, "L2 (odd)");
print_seq_list(L3, "L3 (even)");
return 0;
}
阅读全文