【发布时间】:2011-11-14 06:14:10
【问题描述】:
这就是问题所在。
编写一个函数,用于将多个(已排序)链表合并为一个已排序链表。这 函数应该通过 Iterator 接口访问元素(不要访问元素 直接通过链表)。合并过程的参数是一个数组 迭代器和数组的大小。返回值应该是另一个带有 底层 List 实现。
步骤:
(1) 用迭代器接口实现链表。 定义列表中的元素如下:
typedef struct
{
int idno;
char name[25];
float marks;
} Element;
(a) 列表 createList();
(b) 列表插入(List L, Element e);
(c) 无效 printList(List L);
(d) 迭代器initIterator(List L);
(e) boolean hasMoreElements(iterator I);
(f) 迭代器 moveNext(迭代器 I);
(2) 实现合并功能。
iterator merge(iterator I[],int size)
此函数将合并所有按属性排序的列表中的元素 “分数”。合并函数应该通过迭代器函数访问列表。
(3) 实现驱动功能。
从输入文件中填充列表(作为支持提供)。调用合并 函数并将结果合并列表中的数据存储到输出文件中。
支持文件:test1.txt、test2.txt、test3.txt、test4.txt、test5.txt、test6.txt、test7.txt、test8.txt
可交付成果:dataDef.h、mergeOps.c、mergeOps.h、main.c、output.txt
现在我不想解决这个问题,但我想知道迭代器接口是什么。 我以前从未听说过。
以及如何实现带有迭代器接口的链表。这是什么意思?
它还使用iterator 的数据类型,那会是什么?
【问题讨论】:
-
呃,你确定你说的是
c吗? -
@Brian Roach 我非常喜欢......我也可以发布剩下的问题......
-
Iterator是一个自定义结构,您可以查看 MSDN 上的 C++ 等效项 - iterator Struct。 -
@Devendra - 我不会将 OP 与 C++ 进一步混淆。显示的界面显然是 C 风格的界面(或者是一个在将脚趾伸入 C++ 水域时遇到了很多麻烦的人)。
标签: c iterator linked-list