¿Cuáles son algunos ejemplos de software del mundo real de pilas, colas y deques?

Algunas aplicaciones del mundo real de stack, queue y deque son:

Apilar

  1. Editor de texto : la función de deshacer en cualquier editor de texto es un ejemplo clásico de pila. Todo lo que haga en un editor de texto se guarda en una estructura de datos y, cuando los deshace, las mismas actividades se deshacen según el último orden de entrada (LIFO).
  2. Navegadores web : Todo lo que navegue en una pestaña en particular se guardará en una pila, cada vez que intente volver a la última página visitada, la pila de pestañas muestra las últimas páginas visitadas en el último orden.
  3. Equilibrar símbolos mientras se compila el código fuente

Cola

  1. Cuando varias personas acceden al mismo sitio web para obtener un archivo, el archivo se les proporciona utilizando la función Primero en llegar, primer servicio (FCFS) y se puede implementar mediante la cola.
  2. Cuando coloca varios archivos en una cola de impresión, los archivos se imprimen según el formato FCFS y se pueden implementar usando la cola.
  3. El correo electrónico entrante en la bandeja de entrada también se implementa utilizando la estructura de datos de la cola.

Deque

  1. Se puede ver una buena aplicación de deque en el algoritmo de programación de trabajos, donde si un proceso está esperando demasiado, se pone en estado suspendido listo

Espero que los siguientes ejemplos simples en un procesador de textos del mundo real ayuden:

  1. La impresión se realiza primero en entrar, primero en salir. Esto está representado por una cola .
  2. Deshacer se realiza por último en entrar, primero en salir. Esto está representado por una pila .
  3. No queremos permitir a los usuarios deshacer indefinidamente. Además del (2) anterior, también nos gustaría eliminar el historial más antiguo por orden de llegada. Esto puede ser representado por una deque .

QuickSort y otros algoritmos generalmente recursivos se pueden “aplanar” a versiones iterativas usando pilas de software, muy útil si su maquinaria informática maneja mal la recursividad o no. Se ha demostrado que todas las funciones y procedimientos recursivos se pueden adaptar para usar pilas de software tan hábilmente como basadas en hardware.

Puede comenzar con cualquier línea en cualquier banco, oficina de correos, oficina de vehículos motorizados o supermercado.

muchos lugares que utilizamos apilan uno de ellos recursividad donde el sistema mantiene el apilamiento para cada recursión, el ejemplo más útil de las colas es la cola de mensajes donde ponemos en cola y retiramos la estructura de mensajes para su posterior procesamiento. Google puede encontrar más ejemplos en tiempo real.

Debe sentarse e implementarlos usted mismo, idealmente en C.

No es difícil y aprenderás mucho más que al buscarlos.

More Interesting

¿Cuáles son los rompecabezas de algoritmos de notación O más interesantes?

Cómo elegir un elemento único de una lista dentro de un bucle en R

Cómo resolver un problema usando C ++

¿Por qué deberíamos conocer más de un algoritmo de clasificación en Python (burbuja, inserción, selección) si todos están haciendo el mismo trabajo?

¿Vale la pena pagar 6 x $ 49 por una estructura de datos y especialización de algoritmos en Coursera?

¿Cuántas repeticiones del algoritmo L, U, R, D en un cubo de Rubik se necesitarían para revertir el cubo a su permutación original?

¿Cómo se implementa el alogoritmo de Timsort en Java?

¿Cuáles son todas las áreas donde las estructuras de datos se aplican en escenarios del mundo real?

¿Qué algoritmo es mejor para una variante 4 * 4 * 4 * 4 del último dedo del pie tic-tac considerando un límite de tiempo de 15 segundos?

¿Cuál es la última actualización del algoritmo SEO de Google en 2017?

¿Los investigadores que elaboran algoritmos útiles ganan mucho dinero cuando sus algoritmos se aplican ampliamente en la industria?

¿Son las estructuras de datos y los requisitos previos de algoritmos para la arquitectura y organización de computadoras en un curso típico de CS? Estoy aprendiendo por mi cuenta, ¿cuál debería aprender primero? ¿Puedo aprenderlos en paralelo?

¿Puedes ser bueno en la programación pero malo en los algoritmos?

Dada una lista de enlaces con punteros derechos, cada elemento de la lista tiene un enlace descendente que contiene otra lista de enlaces con punteros descendentes, de modo que cada lista derecha y abajo están ordenadas. ¿Cuál es la forma más rápida de aplanar la lista de enlaces de forma ordenada?

¿Cuál es el algoritmo de árboles extra en el aprendizaje automático?