Да, в случае как стеков, так и очередей, соглашение об именовании является технически точным.
Рассмотрим очередь размера 4. Мы ставим в очередь «o», затем ставим в очередь «x», и они помещаются в очередь в соответствующем порядке.
+---+---+---+---+
Back | | | x | o | Front
+---+---+---+---+
Когда мы снимаем очередь, ближайший к фронту элемент удаляется из очереди, а остальная часть очереди «движется вверх», чтобы выглядеть следующим образом:
+---+---+---+---+
Back | | | | x | Front (o dequeued)
+---+---+---+---+
В этом абстрактном примере "o" - это первый элемент, который должен быть помещен в очередь (первый вход), и первый элемент, который должен быть снят (первый выход).
Затем мы можем снова удалить из очереди и получить x.
+---+---+---+---+
Back | | | | | Front (x dequeued)
+---+---+---+---+
Теперь из этой очереди легко увидеть, что "x" - это последний элемент, который будет помещен в очередь (последний в), и последний элемент, который будет помещен в очередь (последний в).
Следовательно, FIFO и LILO являются эквивалентной терминологией.
Для краткости приведу пример для стека:
+---+ +---+ +---+
| | | | | |
+---+ +---+ +---+
| | | | | |
+---+ +---+ +---+
| | | x | | |
+---+ +---+ +---+
| o | | o | | o |
+---+ +---+ +---+
Push o Push x Pop
На втором шаге «x» становится последним элементом, помещенным в стек (последним в). Затем, когда мы выскакиваем, верхний элемент стека удаляется, что по-прежнему равно «x» (последний раз).
Если бы мы всплыли во второй раз, нам бы дали «о». Этот элемент был первым и последним удаляемым элементом. Следовательно, поведение может быть описано как LIFO, так и FILO.
Что касается того, почему одно соглашение об именах используется поверх другого, - ("/) -