Witam
Czy da się w jakiś sposób mając iterator do jakiegoś elementu seta wyłuskać iterator do jego ojca,lewego syna i prawego syna w drzewie czerwono-czarnym ? Przydałoby się to do tworzenia zmodyfikowanych drzew np. drzew przedziałowych gdyż pisanie własnej implementacji drzewa czerwono-czarnego jest dość męczące.
- Rejestracja:ponad 12 lat
- Ostatnio:prawie 9 lat
- Postów:10

- Rejestracja:ponad 19 lat
- Ostatnio:około 8 godzin
Nie masz gwarancji że set jest zaimplementowany jako drzewo, standard tego nie gwarantuje.
Biblioteka boost ma: http://www.boost.org/doc/libs/1_42_0/doc/html/boost/intrusive/rbtree.html
- Rejestracja:ponad 12 lat
- Ostatnio:prawie 9 lat
- Postów:10
Używanie biblioteki boost nie wchodzi w grę gdyż jest mi to potrzebne do OI gdzie nie mogę używać zewnętrznych bibliotek.
Nie wiem co gwarantuje standard ale w każdym razie tu : http://www.cplusplus.com/reference/set/set/
jest napisane że są to drzewa wyszukiwań binarnych.


- Rejestracja:ponad 13 lat
- Ostatnio:prawie 3 lata
Pafos napisał(a):
Nie wiem co gwarantuje standard ale w każdym razie tu : http://www.cplusplus.com/reference/set/set/
jest napisane że są to drzewa wyszukiwań binarnych.
I co z tego, skoro nie masz dostępu do liści?
Chyba nie zamierzasz dłubać po prywatnych atrybutach klasy kontenera / iteratora?
Biblioteki są zabronione, bo to żadna sztuka ściągnąć sobie odpowiednią implementację (chociażby nagłówkową) i ją użyć.
- Rejestracja:około 14 lat
- Ostatnio:13 dni
- Postów:417
np. drzew przedziałowych gdyż pisanie własnej implementacji drzewa czerwono-czarnego jest dość męczące.
Akurat drzewa przedziałowe możesz łatwiej, szybciej i zużywając mniej pamięci zaimplementować na statycznej tablicy.
Możesz o tym posłuchać/poczytać tutaj http://was.zaa.mimuw.edu.pl/?q=node/8
Implementacja drzew przedziałowych za pomocą drzew czerwono-czarnych to najczęściej mocne utrudnianie sobie życia.
- Rejestracja:ponad 12 lat
- Ostatnio:ponad 6 lat
- Postów:17
W temacie OI, warto wspomnieć o komparatorach, które można wpakować do seta i dzięki temu otrzymać na przykład kolejkę priorytetową, bądź też do sorta otrzymując sortowanie na podstawie własnych kryteriów. Przykład: http://en.cppreference.com/w/cpp/algorithm/sort
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.