Zazwyczaj implementuję wykresy jako podwójnie połączone listy, ale z mojego doświadczenia jest to dość nieefektywne, ponieważ potrzebuję k wskaźników / referencji dla k sąsiadów, więc dla niekierowanego wykresu miałbym ~ 2k sąsiednich linków na listach, jeśli moja matematyka ma rację. Czy istnieje lepszy sposób na zaoszczędzenie miejsca? Wiem, że niektóre …
w szkole uczymy się, jak balansować drzewo AVL po wstawieniu lub usunięciu. W jaki sposób ten rodzaj wiedzy będzie przydatny w prawdziwym świecie? Czy ktoś może podać przykład, kiedy ten rodzaj wiedzy byłby rzeczywiście przydatny? Z tego, co widziałem, w miejscu pracy takie szczegóły rzadko się pojawiają ... Widzę, jak …
Widziałem kod C ++ taki jak poniżej z wieloma typedefs. Jakie są korzyści z używania wielu typedeftakich jak ta w porównaniu do używania prymitywów C ++? Czy istnieje inne podejście, które może również przynieść te korzyści? Ostatecznie wszystkie dane są przechowywane w pamięci lub przesyłane przewodowo jako bity i bajty, …
Pomyśl w kategoriach wstępnie obliczonych tabel odnośników lub czegoś takiego. W którym momencie bardziej sensowne jest używanie bazy danych zamiast twardych wartości w mojej aplikacji? Wartości nie zmienią się i są ładnie oddzielone od deweloperów konserwacji. 100 wartości, 1k, 10k, 100k? Chcę zapisać około 40 000 wartości. W tej chwili …
Używam C i structs, gdzie struct może mieć członków, ale nie funkcje. Załóżmy dla uproszczenia, że chcę utworzyć strukturę dla ciągów, które nazywam stri chcę być w stanie zrobić, str.replace(int i, char c)gdzie ijest indeks ciągu i cjest on znakiem zastępującym znak w miejscu i. Czy nigdy nie byłoby to …
Kiedy programowanie w CI uznało za nieocenione pakowanie struktur za pomocą __attribute__((__packed__))atrybutu GCC, dzięki czemu mogę łatwo przekonwertować ustrukturyzowaną część pamięci ulotnej na tablicę bajtów, która ma być przesłana przez magistralę, zapisana w pamięci lub zastosowana do bloku rejestrów. Spakowane struktury gwarantują, że traktowane jako tablica bajtów nie będą zawierać …
Zamknięte . To pytanie jest oparte na opiniach . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby można było na nie odpowiedzieć faktami i cytatami, edytując ten post . Zamknięte 5 lat temu . Szukałem dobrego kursu online w strukturach danych, ale odkryłem, że Google zwraca również …
Pochodzę z języka C # i Java, jestem przyzwyczajony do tego, że moje listy są jednorodne i to ma dla mnie sens. Kiedy zacząłem zbierać Lisp, zauważyłem, że listy mogą być niejednorodne. Kiedy zacząłem przekręcać ze dynamicsłowem kluczowym w C #, zauważyłem, że od C # 4.0 mogą istnieć również …
Co to jest analiza amortyzowana? I w jaki sposób może pomóc mi osiągnąć gwarancje najgorszego działania w moich programach? Byłem przeczytaniu , że następujące techniki mogą pomóc programista osiągnąć najgorszym przypadku gwarancji wydajności (tj własnymi słowami: gwarancję, że czas pracy programu nie przekroczy czas pracy w najgorszym cast): Algorytmy randomizowane …
Jaka jest różnica między strumieniem a kolejką? Oba mają koncepcję uporządkowanego zestawu elementów, ale zwykle mają różne implementacje i inne słownictwo „wstaw” / „wyciąg” (strumienie) vs. „enqueue” / „dequeue” (kolejka). Czy są one wymienne? Czy sugerują różne koncepcje lub wzorce? Jeśli tak, jakie są różnice?
Nie mam specyficznego kontekstu, w którym zadaję to pytanie, ale podczas czytania książki dla początkujących na C ++ zauważyłem użycie zarówno manipulatora strumienia endl, jak i znaku zmiany linii podczas obchodzenia się z obiektem strumienia. Przykład jest następujący: cout << "Hello World" << endl; cout << "Hello World\n"; Moje pytania …
Rozumiem strukturę drzew binarnych i sposób ich przechodzenia. Jednak mam problemy z realizacją ich rzeczywistych zastosowań, celów w programach i programowaniu. Kiedy myślę o przykładach danych hierarchicznych z „prawdziwego życia”, prawie na pewno mają więcej niż 2 dzieci. Na przykład w drzewie genealogicznym matka często może mieć więcej niż dwoje …
Zwykle struktury danych drzewa są zorganizowane w taki sposób, że każdy węzeł zawiera wskaźniki dla wszystkich swoich elementów potomnych. +-----------------------------------------+ | root | | child1 child2 child3 | +--+------------------+----------------+--+ | | | +---------------+ +---------------+ +---------------+ | node1 | | node2 | | node3 | | child1 child2 | | child1 …
Próbuję znaleźć więcej zasobów dotyczących sterty Brodal . Wszystko, co znalazłem, to implementacja haskellowa stosu Brodal-Okasaki , ale myślę , że są to stosy skośne , prawda? Ponadto jestem niepiśmienny w Haskell, więc to niewiele pomaga. Czy ktoś ma (lub wie) o implementacji kolejki Brodal w pseudokodzie, C, C ++, …
Zostałem o to zapytany w teście wywiadu. Na teście dobrze sobie radziłem, ale nie wiedziałem wystarczająco dużo, aby odpowiedzieć na to pytanie. Jestem ciekawy, jakich struktur danych mogę użyć do szybkiego zapytania danych. Zasadniczo chodzi o to, że odcinki dróg (linie składające się z punktów) przechowywane są w jakiejś strukturze …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.