Este artículo describe el método de implementación de la matriz de colas de bucle bidireccionales de estructuras y algoritmos de datos Java. Compártelo para su referencia, como sigue:
Cabe señalar que no he probado este algoritmo. La idea del algoritmo dada aquí es equivalente al pseudocódigo, ¡por lo que solo se puede usar como referencia!
Fuente del paquete; public class deque {private int maxSize; privado int; privado int derecho; Private int nitems; Privado largo [] myDequ; // constructor public deque (int maxSize) {this.maxSize = maxSize; this.myDequ = new Long [this.maxSize]; this.nitems = 0; this.left = this.maxSize; this.right = -1; } // inserte un número en el lado izquierdo público void insertleft (long n) {if (this.left == 0) this.left = this.maxSize; this.myDequ [-this.left] = n; this.nitems ++; } // Inserte un número en el lado derecho public Void Insertright (Long n) {if (this.right == this.maxsize -1) this.right = -1; this.myDequ [++ this.right] = n; this.nitems ++; } // Eliminar del público izquierdo Long removeleft () {Long temp = this.mydequ [this.left ++]; if (this.left == this.maxsize) this.left = 0; this.nitems--; regresar temp; } // Eliminar del público Long Right Long () {Long Temp = this.myDequ [this.right--]; if (this.left ==-1) this.left = this.maxSize-1; this.nitems--; regresar temp; } // return true si deque está vacío público boolean isEtimty () {return (this.nitems == 0); } // Tamaño de retorno del size public int size () {return this.nitems; }}PD: Las colas de bucle bidireccionales son de gran utilidad. ¡Se pueden usar como colas ordinarias o como pilas!
Para obtener más información sobre los algoritmos de Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación de Java DOM", "Resumen de Java Archivo y TIPS de operación de directorio" y "Summary of Java Cache Operation Tips" TIPS ""
Espero que este artículo sea útil para la programación Java de todos.