Открыть сервис

ЛИФО

ЛИФО (от англ. LIFO, Last In — First Out, «последним пришёл — первым ушёл») — это способ организации и обработки данных, при котором элемент, добавленный в структуру последним, извлекается из неё первым. В информатике и математике данный принцип лежит в основе структуры данных, называемой стеком. В бухгалтерском учёте и налогообложении метод ЛИФО представляет собой способ оценки стоимости материально-производственных запасов (МПЗ) при их списании, основанный на допущении, что запасы, поступившие последними, выбывают первыми.

Принцип работы и основные характеристики

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

Ключевые характеристики стека, реализованного по принципу ЛИФО:

Применение в информатике

В программировании принцип ЛИФО является фундаментальным и используется в широком спектре задач.

Стек вызовов (Call Stack)

Это наиболее распространённое применение. Каждый раз, когда программа вызывает функцию (или процедуру), информация о текущем состоянии выполнения (адрес возврата, локальные переменные, параметры) помещается в стек вызовов. Когда функция завершается, соответствующий фрейм извлекается из стека, и управление возвращается к предыдущей точке вызова. Это обеспечивает корректную обработку вложенных и рекурсивных вызовов.

Обратная польская запись (Reverse Polish Notation, RPN)

Алгоритмы вычисления арифметических выражений, записанных в постфиксной форме (например, 3 4 + 5 *), активно используют стек. Операнды помещаются в стек, а при встрече оператора из стека извлекаются два верхних операнда, над ними выполняется операция, и результат помещается обратно.

Алгоритмы поиска с возвратом (Backtracking)

В задачах, где необходимо исследовать множество вариантов (например, обход лабиринта, задача о восьми ферзях), стек используется для хранения текущего пути. При тупике алгоритм «откатывается» назад, извлекая последний шаг из стека.

Отмена действий (Undo)

Функция «отменить» в текстовых редакторах, графических программах и других приложениях реализована с помощью стека. Каждое действие пользователя помещается в стек. При вызове отмены последнее действие извлекается и отменяется.

Синтаксический анализ

Компиляторы и интерпретаторы используют стек для проверки правильности вложенности скобок, тегов (в XML, HTML) и других синтаксических конструкций.

Применение в бухгалтерском учёте (метод ЛИФО)

В бухгалтерии метод ЛИФО применяется для оценки стоимости списанных материально-производственных запасов (сырья, материалов, товаров). Суть метода заключается в том, что при отпуске запасов в производство или продажу их стоимость рассчитывается исходя из цены последней по времени поступления партии. Остаток запасов на конец периода оценивается по стоимости самой ранней партии.

Влияние на финансовые показатели

Критика и ограничения

Метод ЛИФО подвергается критике за то, что он может искажать реальную стоимость активов компании в балансе (занижая её) и не отражает фактического физического движения товаров (которое чаще соответствует методу FIFO). Из-за этого Международные стандарты финансовой отчётности (МСФО) запрещают использование метода ЛИФО с 2005 года. В России метод ЛИФО также был исключён из Положения по бухгалтерскому учёту «Учёт материально-производственных запасов» (ПБУ 5/01) с 1 января 2008 года и в настоящее время не применяется для целей бухгалтерского учёта. Для целей налогового учёта в России метод ЛИФО также отменён с 2015 года (Федеральный закон № 81-ФЗ).

Сравнение с другими методами

ХарактеристикаLIFOFIFO
Порядок извлеченияПоследний пришёл — первый ушёлПервый пришёл — первый ушёл
Область примененияСтеки, алгоритмы с возвратомОчереди, буферизация данных
Влияние инфляции (бухучёт)Завышает себестоимость, занижает прибыльЗанижает себестоимость, завышает прибыль
Оценка остатков (инфляция)Занижена (по старым ценам)Приближена к рыночной (по новым ценам)
РеализацияПростая (один указатель)Простая (два указателя)

Интересные факты

Источники

  1. Таненбаум Э., Остин Т. Архитектура компьютера. — 6-е изд. — СПб.: Питер, 2013.
  2. Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгоритмы: построение и анализ. — 3-е изд. — М.: Вильямс, 2013.
  3. Положение по бухгалтерскому учёту «Учёт материально-производственных запасов» (ПБУ 5/01) (утратило силу в части метода ЛИФО).
  4. Федеральный закон от 20.04.2014 № 81-ФЗ «О внесении изменений в часть вторую Налогового кодекса Российской Федерации».
  5. Международный стандарт финансовой отчётности (IAS) 2 «Запасы».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →