Stuła jest strukturą danych drzewa, gdzie wyższe poziomy drzewa zawsze zawierają większe (lub mniejsze, jeśli jest ustawione w ten sposób) wartości niż niższe poziomy. "The" heap to garść wolnej pamięci RAM, którą program ma do alokacji dynamicznej. Obaj nazywani są "kupą", ale co ma wspólnego z drugim?Jaki jest związek między stertą "a" i stosem?
Odpowiedz
Nic wielkiego, szczerze mówiąc. Wyobrażam sobie, że słowo sterty zostało po prostu zrobione z jego codziennym (nietechnicznym) użyciem i zastosowane do tych dwóch pojęć indywidualnie jako względnie dobrych analogii.
W pierwszym przypadku (znaczenie struktury drzewa danych) opis stóg jest najbardziej odpowiedni, ponieważ "większe" obiekty są umieszczone wyżej w drzewie (gdzie "większy" jest określony przez dowolną funkcję klawisza) - tj. jest coś w rodzaju palowania mniejszych obiektów na większych (lub większych na górze, w zależności od tego, jak myślisz). Tak właśnie to zinterpretuję; ktokolwiek pierwszy zastosował nazwę kupa do tej struktury danych myślał, że jest to odpowiednie imię w jego umyśle, i po prostu utknęło.
W drugim przypadku (fragmenty pamięci RAM) nazwa sterty może być nieco bardziej widoczna. "Stert" to po prostu "duży zbiór rzeczy w wysoce arbitralnej kolejności", który zdawałby się równie dobrze stosować w powszechnym użyciu, jak przy dynamicznie przydzielanych porcjach pamięci.
W każdym razie nie martwię się abstrakcyjnymi metaforycznymi podobieństwami, które można wyciągnąć między tymi dwoma pomysłami. Traktuj je zupełnie osobno i nie zawiedziesz się w każdej sytuacji.
Edit: Wydaje struktury danych oparty na drzewie może wzięli swoją nazwę od heap z algebry abstrakcyjnej, jak jest to racjonalnie powszechne w informatyce. Jednak nie chciałbym potwierdzić ani zaprzeczyć temu ...
Oni ... mają to samo imię! to jest to!
Nic. Bez związku.
Oboje mają tę samą nazwę, to już wszystko.
"Sterty" nigdy nie są ułożone jako rzeczywista struktura danych sterty.
Jedynym związkiem między nimi jest nazwa "sterty".
Zobacz tę samą witrynę dla exploration of the origin of the name "heap" dla wolnego magazynu pamięci.
Definicja z answers.com
Heap: grupa rzeczy umieszczonych lub rzucone, jeden na drugim: sterty brudnych szmat leżących w kącie.
To tylko podstawowe nazewnictwo ze względu na koncepcyjny obraz rzucania przedmiotów w nieuporządkowany sposób. Jak wskazują inne plakaty, sterty nie są zorganizowane jako struktura danych sterty. To zależy od procedur alokacji pamięci w twojej bibliotece systemowej (np. Sprawdź, jak działa malloc)
Stuła (struktura danych) jest tak nazywana, ponieważ jeśli ją narysujesz, wygląda jak kupa. Stertę (pamięć) nazywa się stertą, ponieważ jest w pewien sposób zorganizowana, ale nie w pełni. Gromadzisz dane na stercie, ale możesz mieć w nim dziury i nieregularności. To tak, jakbyś kładł papiery na kupie. Czasami usuwasz jeden z dołu. Ma to postać kupy, tj. Zorganizowanej, ale nie w pełni.
"jeśli go narysujesz, wygląda jak kupa "-> co oznacza rzeczownik orzecznikowy" ... wygląda jak kupa "? –
Aby dalej komplikować pytanie: w niektórych systemach (np. Microsoft Windows) istnieje wiele "stert" w sensie alokacji pamięci. "Kupa" to tylko the default heap. Ale jeśli zadzwonisz pod numer HeapAlloc()
, możesz wybrać, z której alokacji pamięci chcesz przyporządkować.
- 1. Jaki jest związek między pasażerem a Capistrano?
- 2. Jaki jest związek między __getattr__ a getattr?
- 3. Jaka jest różnica między RSS a stertą?
- 4. Jaka jest różnica między stosem jądra a stosem użytkownika?
- 5. jaki jest związek między tomcat i jdk a aplikacją internetową?
- 6. Jaka jest różnica między stosem wątku a stosem procesu?
- 7. jaki jest związek między masksToBounds i cornerRadius?
- 8. Jaki jest związek między WIC i GDI +?
- 9. Jaki jest związek między docutils i Sphinx?
- 10. Jaki jest związek między UIView i CALayer
- 11. Jaki jest związek między Node.js i V8?
- 12. Jaki jest związek między validate() i hasErrors()
- 13. Jaki jest związek między iteracjami i FRP?
- 14. Jaki jest związek między wątkiem JavaScript a wątkiem interfejsu Silverlight?
- 15. Jaki jest związek między Spring Boot a Spring IO?
- 16. Jaki jest związek między językiem asemblera a językiem maszynowym?
- 17. Jaki jest związek między liczbą a funkcją.prototype w javascript?
- 18. Jaki jest związek między stacją nazw iostream a stacją nazw?
- 19. Jaki jest związek między polem "SYSTEM_PROPERTIES_MODE_ENVIRONMENT" a PropertyPlaceHolderConfigurer?
- 20. Jaki jest związek między forkOn a flagą -qm RTS?
- 21. Jaki jest związek między SPID a połączeniem na serwerze SQL?
- 22. Jaki jest związek między modelowaniem tematów a grupowaniem dokumentów?
- 23. Jaki jest związek między GDAL, FDO i OGR?
- 24. Jaka jest główna różnica między wektorem a stosem?
- 25. Jaki jest związek między OSGi i Injection Dependency Injection?
- 26. Jaki jest związek między ghc-pkg i cabal?
- 27. W nginx, jaki jest związek między worker_connections, keepalive_timeout i $ związku
- 28. Jaki jest związek między środowiskami i projektami w virtualenvwrapper?
- 29. Jaki jest związek między funkcjami generatora i monad w JavaScript?
- 30. Jaki czasownik opisałby związek między klasą C# a jej atrybutem?
Podobne posty [tutaj] (https://stackoverflow.com/q/1699057/465053) i [tutaj] (https://stackoverflow.com/q/660855/465053) – RBT