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 } }