doubly-linked-list

Różnice wydajności między ArrayList i LinkedList

Tak, to stary temat, ale wciąż mam pewne nieporozumienia. W Javie ludzie mówią: ArrayList jest szybszy niż LinkedList, je ... List powinien być wolniejszy niż LinkedList. Jeśli wstawianie oznacza tylko operację add (Object), jak może to być powolne?

Dlaczego usunięcie elementów tabeli hash przy użyciu listy podwójnie połączonej to O(1)?

W podręczniku CLRS "Wprowadzenie do algorytmu" jest taki akapit na pg. 258. Możemy usunąć element w czasie O(1), Jeśli listy ... zonej nadal trzeba znaleźć x, aby ją usunąć, czym to się różni od listy pojedynczo połączonej? Proszę, pomóż mi to zrozumieć!

jak zaimplementować podwójnie połączone listy

Czy w Haskell można mieć podwójnie połączoną listę i jakie jest idealne rozwiązanie do ich wdrożenia? Wdrażam Wykres sceny, gdzie każdy widget ma rodzica, a także dziecko, i jest to korzystne, aby spojrzeć zarówno w górę, jak iw dół wykresu.

W jaki sposób możliwe jest wyszukiwanie binarne na liście podwójnie połączonej w czasie O (n)?

Słyszałem, że możliwe jest zaimplementowanie wyszukiwania binarnego nad listą podwójnie połączoną w czasie O (n). Dostęp do l ... (N) czas, a Wyszukiwanie binarne uzyskuje dostęp do O(log n) różnych elementów, więc czy runtime nie powinno być O (n log n)?