Kodowanie funkcji do kopiowania listy połączonej w C ++
Muszę zaimplementować funkcję pomocniczą o nazwie copyList, mającą jeden parametr, wskaźnik do ListNode. Ta funkcja musi zwrócić wskaźnik do pierwszego węzła kopii oryginalnej listy połączonej. Innymi słowy, muszę kodować funkcję w C ++, która pobiera węzeł nagłówka połączonej listy i kopiuje całą połączoną listę, zwracając wskaźnik do nowego węzła nagłówka. Potrzebuję pomocy przy wdrażaniu tej funkcji i właśnie to mam teraz.
Listnode *SortedList::copyList(Listnode *L) {
Listnode *current = L; //holds the current node
Listnode *copy = new Listnode;
copy->next = NULL;
//traverses the list
while (current != NULL) {
*(copy->student) = *(current->student);
*(copy->next) = *(current->next);
copy = copy->next;
current = current->next;
}
return copy;
}
Jest to również struktura Listnode, z którą pracuję:
struct Listnode {
Student *student;
Listnode *next;
};
Uwaga: innym czynnikiem, z którym korzystam w tej funkcji, jest pomysł zwrócenia wskaźnika do zmiennej lokalnej.