ПРАКТИКА РАБОТЫ С ОЧЕРЕДЬЮ

Очередь — абстрактный тип данных с доступом к элементам  по принципу «первый пришёл — первый вышел» (FIFO, First In — First Out).
Для простоты запоминания можно вспоминать обычную очередь в магазине.

queue<int> a; – создание пустой очереди без элементов 

a.push(5); – добавить значение 5 в конец очереди
 
a.pop(); – удалить первый элемент в очереди
 
int b = a.front();  – вернуть в переменную первый элемент в очереди  (без удаления)
 
a.empty() – вернуть true, если очередь пуста,  и false в противном случае.

добавить в очередь точку (x0,y0)
запомнить цвет начальной точки
пока очередь не пуста
  {
  взять из очереди точку (x,y)
  если A[y][x] = цвету начальной точки то
    {
    A[y][x] = 2;
    добавить в очередь точку (x-1,y)
    добавить в очередь точку (x+1,y)
    добавить в очередь точку (x,y-1)
    добавить в очередь точку (x,y+1)
    }
  }