To praca domowaTworzenie konstruktor kopiujący dla połączonej listy
pracuję nad wdrożeniem połączonej listy klas dla mojego klasy C++, a konstruktor kopia ma być bardzo mylące dla mnie.
prowadzi link lista składa się z kodowanym zwanych Elems:
struct Elem
{
int pri;
data info;
Elem * next;
};
Elem * head;
informacji jest oddzielnym, niestandardowe klasy, która jest przechowywana w Elem.
podpis dla konstruktora kopii jest:
linkedList::linkedList(const linkedList &v)
Problem mam jest głównie z moją logikę i rzeczywiście pisanie go jako kod.
Moja ogólna idea jest do:
- Zestaw głowa do v.head (głowa = v.head)
- wartości ustawień Elem do (pri = v.pri V, w info = v.info obok = v.next)
- iterację, powtarzając krok 2.
jest to ogólna idea?
Każda pomoc będzie świetna. Pamiętaj, to jest praca domowa, więc nie proszę o bezpośrednie odpowiedzi!
Dziękuję za poświęcony czas
=================================== ================================================== ================================================== =============================
Dzięki za poświęcony czas wszystkim!
Myślę, że mam to zorientowali się:
//Copy Constructor
LinkedList::LinkedList(const LinkedList &v)
{
Elem * p1 = 0;//current
Elem * p2 = 0;//next
if(v.head == 0)
head = 0;
else
{
head = new Elem;
head -> pri = v.head -> pri;
head -> info = v.head -> info;
p1 = head;
p2 = v.head -> next;
}
while(p2)
{
p1 -> next = new Elem;
p1 = p1 -> next;
p1 -> pri = p2 -> pri;
p1 -> info = p2 -> info;
p2 = p2 -> next;
}
p1 -> next = 0;
}
Jestem pewien, że prace. Narysowałem kilka logicznych zdjęć, które mi pomogły i nie napotkaliśmy żadnych problemów.
Dokładnie to, co ma zrobić konstruktor kopiowania? Wytworzenie kopii każdego węzła za pomocą odpowiednich linków brzmi rozsądnie, ale nie jest to jedyna możliwość. –
+1 Za bezceremonialne zadanie domowe * i prośba o brak bezpośrednich odpowiedzi *. –
Dzięki za podanie mi właściwej wskazówki!Zaimplementowałem konstruktor kopii głębokiej dla moich węzłów, aby móc zwrócić obiekt "końcowego" węzła ze strukturą odniesienia dla węzła nadrzędnego i jego węzła nadrzędnego ... aby pozostać w takcie. Wykorzystano go do algorytmów wyszukiwania drzewa – mtosch