Если вы ищете способ самый быстрый , это будет круговой массив: вы отслеживаете свою текущую позицию в массиве (ndx) и конец массива (конец), поэтому, когда вы вставляете элемент, вы неявно удаляете самый старый элемент.
Круговой массив - самая быстрая реализация очереди фиксированного размера, о которой я знаю.
Например, в C / C ++ это будет выглядеть так для целых чисел (выход, когда вы получите 0):
int queue[SIZE];
int ndx=0; // start at the beginning of the array
int end=SIZE-1;
int newitem;
while(1){
cin >> newitem;
if(!newitem) // quit if it's a 0
break;
if(ndx>end) // need to loop around the end of the array
ndx=0;
queue[ndx] = newitem;
ndx++
}
Можно провести много оптимизации, но если вы хотите построить ее самостоятельно, это самый быстрый маршрут.
Если вы не заботитесь о производительности, используйте поставленный объект Queue, потому что он должен быть обобщенным.
Он может быть или не быть оптимизирован, и он может не поддерживать список фиксированного размера, поэтому обязательно проверьте документацию на него перед использованием.