Mi respuesta tratará de elaborar una aplicación real de estructuras de datos en software y hardware. Mantendría mi respuesta limitada a la aplicación de pila y cola solamente.
La elaboración de la aplicación de todas las estructuras de datos probablemente tomaría días, si no meses.
- APILAR
- Gestión de la memoria
Cualquier entorno informático moderno utiliza una pila como modelo principal de administración de memoria para un programa en ejecución. Ya sea código nativo (x86, Sun, VAX) o JVM, una pila está en el centro del entorno de tiempo de ejecución para Java, C ++, Ada, FORTRAN, etc. - Llamada y proceso de devolución
Cuando se llama a un método / función
Se crea un registro de activación; su tamaño depende del número y tamaño de las variables y parámetros locales.
- ¿Qué proyectos usan algoritmos de redes neuronales?
- ¿Qué es el algoritmo de captura de pantalla de Snapchat?
- ¿Puedo obtener un enlace a algunas buenas preguntas de programación dinámica 3-D?
- ¿Cuál es el algoritmo utilizado para mostrar el orden de amigos que se muestra en toda la lista de amigos en Facebook?
- Cómo imprimir rutas en forma DFS en gráficos
- El valor del puntero base se guarda en la ubicación especial reservada para él.
- El valor del contador del programa se guarda en la ubicación de la dirección de retorno
- El puntero base ahora se restablece a la nueva base (parte superior de la pila de llamadas antes de la creación del AR)
- El contador de programa se establece en la ubicación del primer bytecode del método que se llama
- Copia los parámetros de llamada en la región de parámetros
- Inicializa variables locales en la región variable local
Mientras se ejecuta el método, las variables y parámetros locales se encuentran simplemente agregando una constante asociada con cada variable / parámetro al puntero base.
Cuando un método regresa
Obtenga el contador del programa del registro de activación y reemplace lo que está en la PC
Obtenga el valor del puntero base del AR y reemplace lo que hay en el BP
Pop el AR por completo de la pila. - Retroceso
Backtracking tiene una gran aplicación en robótica, por ejemplo, mouse para resolver laberintos.
- COLA
- Cuando un recurso se comparte entre múltiples consumidores. Los ejemplos incluyen programación de CPU, programación de disco.
- Cuando los datos se transfieren de forma asíncrona (datos no necesariamente recibidos a la misma velocidad que los enviados) entre dos procesos. Los ejemplos incluyen memorias intermedias IO, tuberías, archivo IO, etc.
por ejemplo, imprimir páginas usando una impresora.
PD: incluso cuando se considera Stack and Queue, las aplicaciones son demasiadas para enumerarlas.