La "cola", o FIFO, es una de las estructuras de datos más comunes y tiene implementaciones nativas en muchos idiomas y marcos. Sin embargo, parece haber poco consenso sobre cómo deben nombrarse las operaciones de cola fundamentales. Un estudio de varios lenguajes populares muestran:Terminología/convención de nomenclatura para operaciones de cola/API?
- Python: PUT/GET
- C#, Qt: poner en cola/retirada de cola
- Ruby, C++ STD: push/pop
- Java: añadir/quitar
Si se necesita implementar una cola (por ejemplo, en alguna plataforma integrada que ya no tenga una implementación de cola nativa), ¿qué convención de nomenclatura sería la mejor? Enqueue/dequeue parece ser el más explícito, pero es prolijo; put/get es sucinto pero no proporciona ninguna pista sobre la naturaleza FIFO de las operaciones; push/pop parece sugerir operaciones de pila en lugar de operaciones de cola.
¿Por qué no simplemente tener bish() bosh() también: S TAOCP quizás sea la referencia para la resolución de disputas? –
Creo que la elección popular es 'enqueue (element: Element): void' y' dequeue(): Element'. Sin embargo, tiendo a escribir tantas clases DS/Algorithm como pueda utilizando cosas como 'add (element: Element)' y 'next(): Element' porque estos métodos también se comparten entre otros DS/Algorithms. ** De esta forma, un Implementador tiene menos necesidad de conocer las partes internas del DS y puede emplear el Principio de Sustitución de Liskov de SOLID más fácil **. De lo contrario, solo necesitas un adaptador, pero estoy a favor de cambiar la convención normativa para esto. – Cody