com.atguigu.queue paquete; Importación java.util.Scanner; public class CircleArrayQueueDemo { void main (String [] args) public static { // Prueba una System.out.println ( "caso de disposición anular la prueba de analógico cola ~ ~ "); // Crear una circular cola CircleArray cola = new CircleArray (4) ; // descripción del conjunto 4, que es la cola efectiva máxima de datos 3. Char Key = ''; // recibir la entrada del usuario escáner escáner = new escáner ( la System.in); // Boolean = true Loop; // salida un menú al mismo tiempo (Loop) { System.out.println ( "S (Mostrar): cola de la pantalla"); System.out.println ( "E (salida) : salir del programa "); System.out.println (" un (Add): datos se suman a una cola "); System.out.println (" G (GET): los datos tomados de la cola "); System.out.println ( "h (cabeza): ver la cabeza cola de datos"); del System.out.println (e.getMessage ()); clave = scanner.next () charAt (0 ); // . recibir un carácter Switch (Key) { Case 'S': queue.showQueue (); PAUSA; Case 'A': System.out.println ( "la salida de una número "); valor int = scanner.nextInt (); queue.addQueue (valor); PAUSA; Case 'G': // datos extraídos el try { int queue.getQueue RES = (); System.out.printf (" eliminado los datos D% \ n", RES); } el catch (Exception e) { // el TODO: mango Excepción Caso 'H':// Comprobar los datos de cabecera de la cola try { } PAUSA; int queue.headQueue RES = (); System.out.printf ( "cabeza de datos de la cola es D% \ n-", RES); } la captura (Excepción E) { // el TODO: mango Excepción la System.out. el println (e.getMessage ()); } PAUSA; Caso 'E': // salida scanner.close (); Loop = false; PAUSA; por defecto: PAUSA; } } System.out.println ( "programa sale ~~" ); } } clase CircleArray { int privada la maxSize; // representa la capacidad máxima de la matriz // hacer un ajuste frente significados variables: puntos delanteras al primer elemento de la cola, es decir ARR [frente] es el primer elemento de la cola // delante del valor inicial = 0 Private int frontal; // variables de TRASERO hacer un ajuste significados:. un punto posterior después de que el último elemento de la cola está vacía debido a que un espacio como convención deseada @ trasera valor inicial de 0 = int privada trasera; // final de la cola private int [] arr; // esta información se utiliza para almacenar datos, cola analógicas CircleArray público (int arrMaxSize) { el maxSize = arrMaxSize; ARR = new new int [el maxSize]; } // si la cola está llena público Boolean isFull () { return (. TRASERO + 1)% == Frente al maxSize; } // si la cola está vacía pública de Boole estaVacia () { volver TRASERO == frontal; } // añadir datos a una cola public void addQueue (int n) { // determina si la cola está llena IF (isFull ()) { // mostrar todos cola de datos System.out.println ( "cola está llena, los datos no se pueden añadir ~"); return; } // datos añadido directamente ARR [trasera] = N-; // después del cambio posterior, debe considerarse de módulo = traseros (+ trasero 1.) La maxSize%; } // obtener la cola de datos, la cola de public int getQueue ( ) { // si la cola vacía iF (estaVacia ()) { // excepciones tiro arrojan nueva RuntimeException ( "cola está vacía, los datos no se toman"); } // aquí se dirige a analizar fuera de la parte delantera de una cola elemento // 1. primer frente retenido valor correspondiente a una variable temporal // 2. después del cambio de frente, considerada módulo // 3. retorno variable almacenada temporalmente valor int = ARR [frente]; = delanteros (delantero . 1 +) del maxSize%; valor de retorno; } // Iterar pública showQueue void () { SI (estaVacia ()) { System.out.println ( "cola está vacía, no hay datos ~ ~"); de retorno; } // las ideas: que atraviesa el delantero, el número de elementos atravesados // móvil cerebros for (int i = frontal; I <Frente + size (); i ++) { System.out.printf ( "ARR [D%] D =% \ n-", el% maxSize I, ARR [I el% maxSize]); } } // determinar el número de datos válidos en la cola actual tamaño int público () { // TRASERO = 2 // = frontal 1. // = la maxSize 3. retorno (la maxSize REAR + - Front) el% maxSize; } // mostrar la cola de los datos de cabecera, datos de notas no se toma public int headQueue () { // determina si (estaVacia ()) { throw new RuntimeException ( "cola está vacía, no hay datos ~ ~"); } volver arr [frente]; } }
Utilizar una matriz a la cola de
Supongo que te gusta
Origin blog.csdn.net/yz18931904/article/details/104177179
Recomendado
Clasificación