Lisp czy Clojure mają zaawansowane operacje na listach, ja w C++ nie muszę mieć aż tak zaawansowane, ale jak można zrobić coś takiego:
- nie dodaję jednego elementu, ale tworzę np. 5-10 elementowe drzewko i go dodaję w dowolnym miejscu drzewa,
- jeden element mogę dodać wielokrotnie
- potrzeba klonowania, aby zmiana w jednym elemencie nie powodowała zmiany w innym
- z drugiej strony - klonowanie powinno uwzględniać dziedziczenie i polimorfizm
Mam z czymś takim problem: węzeł powinien być wymieniony na drzewko, ale nie mogę wołać procedury wymiany dla tego węzła, bo co najwyżej zmienię ten element ale jego wskazania już nie, jak to zrobić?
Gdyby wołać z nadrzędnych to ani nie można by wymienić roota, a poza tym duplikował by się kod dla różnych innych typów.
[C++] Klasy operacji na listach
-
- Moderator
- Posty: 2828
- Rejestracja: 15 cze 2008, o 15:45
- Płeć: Mężczyzna
- Lokalizacja: Seattle, WA
- Podziękował: 3 razy
- Pomógł: 356 razy
Re: [C++] Klasy operacji na listach
Rozdziel węzeł drzewa od jego zawartości, wtedy masz dwukrotne przejście po wskaźnikach, ale możesz zmieniać węzeł na drzewo bez obaw o wskazania na węzeł.