Сёркис, гайсы. Сегодня будет лайтовый постик. Наверное самая легкая в реализации структура данных - очередь :)
Не забудьте подписаться на мой Telegram-канал, там я выкладываю больше постов, чем здесь :)
В этой структуре всё просто - её можно представить как очередь в магазине, первый зашел - первый вышел. Думаю здесь будет интересно посмотреть на её реализацию (чистыми средствами c++): я создал шаблонный класс, в котором четыре поля: массив, текущий элемент, буффер (чтобы выделять достаточно места и размер очереди).
Далее у нас будет три функции, начнем с первой: `push()` - добавляет элемент в очередь. В нем проверка на превышение допустимого буффера, если буффер превышен, добавляем 4 ячейки, затем копируем старый массив во временный, а потом меняем указатель на новый массив. Всё просто.
`pop()` - достаём первый элемент. Здесь тоже не сложно, смотрим на пустоту массива, затем запоминаем первый элемент, создаем новый временный массив и по факту сдвигаем старый массив на одну ячейку влево. Затем опять меняем указатель и не забываем подчищать память.
Примерно так нужно работать с массивами почти в любой структуре данных на C++, в отличие от C# :)