Utilizar una matriz a la cola de

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]; 
   } 
}
Publicados 316 artículos originales · ganado elogios 33 · vistas 210 000 +

Supongo que te gusta

Origin blog.csdn.net/yz18931904/article/details/104177179
Recomendado
Clasificación