Un montón es una estructura de datos de árbol donde los niveles superiores del árbol siempre contienen valores mayores (o menores, si se configura así) que los niveles más bajos. "The" Heap es un montón de RAM libre que un programa tiene disponible para asignación dinámica. Ambos son llamados "montón", pero ¿qué tiene que ver uno con el otro?¿Cuál es la relación entre "un" montón y "el" montón?
Respuesta
Nada, para ser sincero. Me imagino que la palabra montón se tomó simplemente con su uso diario (no técnico) y se aplicó a estos dos conceptos individualmente como analogías razonablemente buenas.
En el primer caso (estructura de datos de árbol de significado), la descripción montón es más adecuada porque "mayor" objetos se colocan más arriba en el árbol (donde "mayor" está determinada por una función clave arbitraria) - es decir, hay una especie de acumulación de objetos más pequeños encima de los más grandes (o más grandes en la parte superior, dependiendo de cómo piense en ello). Así es como lo interpretaría; quien primero aplicó el nombre montón a esta estructura de datos pensó que era un nombre apropiado en su mente, y simplemente está atorado.
En el segundo caso (trozos de RAM), el nombre de Heap es quizás un poco más evidente. "Heap" es simplemente "una gran colección de cosas en un orden altamente arbitrario" aquí, que parece aplicarse tan bien en el uso común como lo hace a los trozos de memoria asignados dinámicamente.
En cualquier caso, no me preocuparía por las similitudes metafóricas abstractas que puede trazar entre las dos ideas. Trátelos completamente por separado y no se equivocará en ninguna situación.
Editar: Parece que la estructura de datos basado en árboles puede han tomado su nombre de la heap del álgebra abstracta, como es bastante común dentro de la informática. Sin embargo, no quisiera confirmar o negar esto ...
Ellos ... tienen el mismo nombre! Eso es.
Nada. No hay relación.
Ambos tienen el mismo nombre, eso es todo.
Allí 'el montón' nunca se organiza como una estructura de datos de montón real.
La única relación entre los dos es el nombre "montón".
Consulte este mismo sitio para obtener un exploration of the origin of the name "heap" para la memoria gratuita.
Definición de answers.com
Montón: Un grupo de cosas colocadas o lanzados, uno encima del otro: un montón de trapos sucios que yacen en la esquina.
Es solo un nombre básico debido a la imagen conceptual de tirar cosas de forma desordenada. Como señalan otros carteles, el montón no está organizado como una estructura de datos de montón. Eso depende de las rutinas de asignación de memoria en la biblioteca de su sistema (por ejemplo, compruebe cómo funciona malloc)
El montón (estructura de datos) se llama así porque si lo dibuja se ve como un montón. El montón (memoria) se llama montón porque de alguna manera está organizado, pero no del todo. Usted acumula datos en un montón pero puede tener agujeros e irregularidades. Es como si pusieras papeles en un montón. A veces eliminas uno de la parte inferior. Esto tiene una forma de un montón, es decir, de alguna manera organizado, pero no del todo.
"si lo dibuja se ve como un montón "-> ¿qué significa el sustantivo predicado de" ... parece un montón "? –
Para complicar aún más la pregunta: en algunos sistemas (por ejemplo, Microsoft Windows), hay múltiples "montones" en el sentido de asignación de memoria. El "montón" es simplemente the default heap. Pero si llama al HeapAlloc()
, puede elegir desde qué asignación de memoria desea una subasignación.
- 1. ¿El montón es realmente un montón?
- 2. ¿Cuál es la diferencia entre la pulverización de montón, desbordamiento de pila, desbordamiento de montón?
- 3. sobrecarga para un montón de montón vacío
- 4. ¿Cuál es la diferencia entre el montón y la tienda gratuita?
- 5. Android: ¿cuál es la diferencia entre el montón de poca profundidad y retenido
- 6. ¿Es un PHP SplHeap realmente un montón?
- 7. Es mi montón fragmentado
- 8. ¿Cuál es el tamaño del montón del Samsung Galaxy S3?
- 9. cómo borrar el montón?
- 10. ¿Cuál es la relación entre el campo 'SYSTEM_PROPERTIES_MODE_ENVIRONMENT' y PropertyPlaceHolderConfigurer?
- 11. C++ apilar las variables y variables montón
- 12. Objetos asignados en el montón
- 13. Objetos en el montón y referencias
- 14. ¿Es una matriz ordenada un min-heap? ¿Cuál es el valor mínimo de un montón máximo?
- 15. ¿Cuál es la diferencia entre la relación Composición y Asociación?
- 16. ¿Puedes declarar un puntero en el montón?
- 17. Inicialización de la matriz en el montón
- 18. Eliminación en el montón binario
- 19. montón y pila de ensamblaje de Windows?
- 20. ¿Cuál es la relación entre GC, Finalize() y Dispose?
- 21. nginx, ¿cuál es la relación entre worker_connections, keepalive_timeout y $ conexión
- 22. ¿Cuál es la relación entre ContentPane y JPanel?
- 23. ¿Cuál es la relación entre WIC y GDI +?
- 24. ¿Cuál es la relación entre masksToBounds y cornerRadius?
- 25. ¿Cuál es la relación entre las redes bayesianas y neuronales?
- 26. ¿Cuál es la relación entre entornos y proyectos en virtualenvwrapper?
- 27. ¿Cuál es la relación entre Passenger y Capistrano?
- 28. ¿Cuál es la diferencia/relación entre AVR y Arduino?
- 29. ¿Cuál es la relación entre UIView y CALayer
- 30. Cuál es la relación entre píxeles y píxeles escalados
Publicaciones relacionadas [aquí] (https://stackoverflow.com/q/1699057/465053) y [aquí] (https://stackoverflow.com/q/660855/465053) – RBT