Czerwone czarne drzewo z tym samym kluczem wielokrotnie: przechowuj kolekcje w węzłach lub przechowuj je jako wiele węzłów?

Najwyraźniej możesz to zrobić, ale ten pierwszy jest bardziej powszechny.

Dlaczego wybrałeś ten drugi i jak to działa?

Przeczytałem to:http://www.drdobbs.com/cpp/stls-red-black-trees/184410531; co sprawiło, że pomyślałem, że to zrobili. To mówi:

insert_always jest zmienną statusu, która mówi rb_tree, czy dozwolone jest wiele instancji tej samej wartości klucza. Ta zmienna jest ustawiana przez konstruktora i jest używana przez STL do rozróżnienia między zestawem a multisetem oraz między mapą a multimapą. set i map mogą mieć tylko jedno wystąpienie określonego klucza, podczas gdy multiset i multimap mogą mieć wiele wystąpień.

Chociaż teraz myślę, że to niekoniecznie oznacza to. Mogą nadal używać pojemników.

Myślę, że wszystkie węzły z tym samym kluczem musiałyby być w jednym rzędzie, ponieważ albo trzeba przechowywać wszystkie węzły z tym samym kluczem po prawej stronie, albo po lewej stronie. Jeśli więc zapiszesz równe węzły po prawej stronie i wstawisz 1000 1s i jeden 2, to w zasadzie będziesz miał połączoną listę, która zrujnowałaby właściwości czerwonego czarnego drzewa.

Czy to powód, dla którego nie mogę znaleźć wiele, że to tylko zły pomysł?

questionAnswers(2)

yourAnswerToTheQuestion