En segundo lugar, la cola del modo de matriz

Ideas de implementación:

1) front = -1 puntos a la posición anterior de la cabeza de la cola, rear = -1 puntos al final de la cola y maxSize inicializa la capacidad máxima de la cola

2) Cuando rear <maxSize-1 indica que la cola aún no está llena, se le permite continuar agregando rear ++ al final de la cola;

3) Cuando front == rear, la cola está vacía

Código de implementación de C #:

usando el sistema; 

estructura de datos del espacio de nombres 
{ public class ArrayQueue 
    { static void Main ( string [] args) 
        { // Inicializa la cola var queue = new ArrayQueue ( 5 );
             prueba 
            { 
                queue.GetQueue (); 
            } catch 
            { 
                Console.WriteLine ( " La cola aún está vacía ... \ n " ); 
            } 
            Console.WriteLine ( " Iniciar en cola ... \ n "
     
         
            
            
            );
            para ( int i = 1 ; i <= 6 ; i ++ ) 
            { 
                queue.AddQueue (i); 
            } 
            Console.WriteLine ( " \ n 开始 出 队 ... \ n " );
            for ( int i = 1 ; i < 6 ; i ++ ) 
            { 
                Console.WriteLine (queue.GetQueue ()); 
            } 
            prueba 
            { 
                queue.GetQueue (); 
            } 
            catch  
            {
                Console.WriteLine ( "Todos están fuera de la cola ... " ); 
            } 
        } 

        #region array mode queue
         private  int maxSize; // queue maximum         
        private  int front; // queue head 
        private  int rear; // queue 
        head private int rear; // queue end private  int [] arrayQueue; / / Matriz de cola de simulación
         // Cola de inicialización 
        public ArrayQueue ( int maxSize = 1 ) 
        { 
            this .maxSize = maxSize;
             this .arrayQueue = new  int[maxSize];
             this .front = -1 ; // Apunte a la posición anterior del encabezado de la cola 
            this .rear = -1 ; // Apunte al final de la cola, la última posición de la 
cola         } 

        // Determine si la cola está llena 
        public  bool IsFull () 
        { 
            return rear == maxSize- 1 ; 
        } 
        public  bool IsEmpty () 
        { 
            return front == rear; 
        } 

        // enqueue 
        public  bool AddQueue ( int (IsFull ()) elemento )
        { 
            // La cola está llena 
            si
            { 
                Console.WriteLine ( " Queue is full ... " );
                 return  false ; 
            } 
            rear ++ ; 
            arrayQueue [rear] = item;
             return  true ; 
        } 

        // dequeue 
        public  int GetQueue () 
        { 
            // la cola está vacía 
            si (IsEmpty ()) 
            { 
                lanzar  nuevo IndexOutOfRangeException ( "La cola está vacía ... " 
            frente); 
            } ++ ;
            return arrayQueue [frente]; 
        } 
        #endregion 
    } 
}

Supongo que te gusta

Origin www.cnblogs.com/xiaojvhuang/p/12677479.html
Recomendado
Clasificación