여기에 문제가 있습니다.반복자 인터페이스를 사용하여 연결된 목록 구현
여러 개의 (정렬 된) 연결 목록을 하나의 정렬 된 연결 목록으로 병합하는 함수를 작성하십시오. 이 함수는 Iterator 인터페이스를 통해 요소에 액세스해야합니다 (연결된 목록을 통해 요소에 직접 액세스하지 마십시오). 병합 프로 시저에 대한 인수는 반복자 및 배열 크기입니다. 반환 값은 List 구현이있는 또 다른 Iterator 여야합니다.
단계 :
(1) 반복 목록을 사용하여 연결된 목록을 구현합니다.) (
typedef struct
{
int idno;
char name[25];
float marks;
} Element;
의 (a) 목록 createList; 아래 목록의 요소를 정의
(b) 목록 삽입 (목록 L, 요소 e);
(c) Void printList (List L);
(d) iterator initIterator (List L);
(e) 부울 hasMoreElements (반복자 I);
(f) 반복자 moveNext (반복자 I);
(2) 병합 기능을 구현하십시오.
iterator merge(iterator I[],int size)
이 기능은 속성 "마크"로 주문한 모든 목록의 요소를 병합합니다. Merge 함수는 iterator 함수를 통해 목록에 액세스해야합니다.
(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 전 꽤 많이 .. 질문의 나머지도 게시 할 수 있습니다 .. – Kraken
'Iterator'는 사용자 정의 구조입니다. MSDN의 C++에서 이에 상응하는 내용을 볼 수 있습니다 - [iterator 구조체] (http :// /msdn.microsoft.com/ko-kr/library/x9be4t1b.aspx). –