Esto puede tener un pequeño problema con la palabra “montón” utilizada para dos cosas diferentes en la programación: la estructura de datos organizada (basada en un árbol de búsqueda binario) donde los elementos considerados más altos en un orden de clasificación se colocan más arriba de un árbol (para un máximo -apilado, al revés para un montón mínimo). O es el área de RAM de la cual las asignaciones dinámicas extraen sus espacios libres.
Sin embargo, en ambos casos: creo que su pregunta debería ser cambiada. Una cola prioritaria se construye en un montón (o al menos esa es una implementación). Es decir, la pregunta debería ser más bien: “ ¿Una cola prioritaria necesita usar un montón? ”
Y la respuesta es … No … puede usar uno, pero igualmente podría implementarse de otra manera. Es solo que un montón (el tipo de estructura de datos) tiende a ser la forma más fácil de implementar una cola de prioridad razonablemente rápida. Y también el montón (asignación dinámica) tiende a facilitar la implementación de cualquier tipo de estructura de árbol, especialmente si su tamaño puede crecer / reducirse mucho. Se puede usar una matriz asignada estáticamente en la pila, pero requiere un poco de previsión (al menos hasta el punto de elegir un número máximo de elementos para la cola). Sin mencionar que algunas de las otras formas de colas prioritarias usan estructuras ubicadas más fácilmente dentro de una matriz asignada estática.
- ¿Cuál es el algoritmo más poderoso en el mundo de las aplicaciones?
- ¿Qué bibliotecas o marcos de Python, C son buenos para las pruebas de diagnóstico en estadísticas?
- ¿Cuál es la diferencia entre un algoritmo y un procedimiento?
- Cómo encontrar todos los palíndromos posibles que se pueden generar usando las letras de una cadena dada
- ¿Cuál es la relación entre matrices y matrices variables de programas de computadora?