问题在这里
编写一个函数,将多个(排序)链表合并为一个排序链表。这函数应该通过Iterator接口访问元素(不要访问元素)直接通过链表)。的数组作为合并过程的参数迭代器和数组的大小。返回值应该是另一个带
步骤:
(1)用迭代器接口实现链表。在列表中定义元素如下:
typedef struct
{
int idno;
char name[25];
float marks;
} Element;
(a) List createList();
(b) List insert(List L, Element e);
(c) Void printList(List L);
(d) iterator (List L);
(f) iterator moveNext(iterator I);
(2)实现Merge功能
iterator merge(iterator I[],int size)
此函数将合并按该属性排序的所有列表中的元素"标志"。Merge函数应该通过迭代器函数访问列表。
(3)实现驱动函数
从输入文件填充列表(作为支持提供)。调用合并函数,并将结果合并列表中的数据存储到输出文件中。
支持文件:test1.txt, test2.txt, test3.txt, test4.txt, test5.txt, test6.txt, test7.txt, test8.txt
交付成果:dataDef.h、mergeps .c、mergeps .h、main.c、output.txt
现在我不想知道这个问题的解决方案,但我想知道迭代器接口是什么。我以前从未听说过。
以及如何用迭代器接口实现链表。这是什么意思?
它还使用了数据类型iterator
那会是什么?
迭代器只是一个泛化的术语,它允许你遍历容器(如数组、列表等)。
从维基百科,在计算机程序设计中,迭代器是一种使遍历容器的程序员。不同类型的迭代器是通常通过容器的接口提供。通过接口和给定迭代器的语义是固定的,迭代器通常是根据容器底层的结构实现实现和容器之间通常是紧密耦合的启用迭代器的操作语义。请注意迭代器执行遍历,并提供对中的数据元素的访问一个容器,但不执行迭代(即,不是没有一些)在这个概念上有很大的自由,或者在小的用法上术语)。迭代器的行为类似于数据库游标。
当你的作业谈到创建一个不直接访问元素的迭代器时,你可以看看迭代器设计模式
关于Iterator
的更多信息- C语言中迭代器的实现
- OOP中的迭代器模式 我们还需要Iterator设计模式吗?c#中的迭代器设计模式