Sobes.tech
Back to questions
Senior
6

Объясните разницу между LIFO и FIFO на примере стека и очереди.

Companies where asked
Алабуга

Answer from AI

sobes.tech AI

LIFO (Last In, First Out) и FIFO (First In, First Out) — это два способа организации данных.

  • LIFO — последний пришёл, первый вышел. Пример: стек. Последний добавленный элемент извлекается первым.
  • FIFO — первый пришёл, первый вышел. Пример: очередь. Элементы извлекаются в том порядке, в котором были добавлены.

Пример на Go:

package main

import "fmt"

func main() {
    // Стек (LIFO)
    stack := []int{}
    stack = append(stack, 1) // push
    stack = append(stack, 2)
    fmt.Println("Стек:", stack)
    top := stack[len(stack)-1]
    stack = stack[:len(stack)-1] // pop
    fmt.Println("Извлечён элемент (LIFO):", top)

    // Очередь (FIFO)
    queue := []int{1, 2, 3}
    fmt.Println("Очередь:", queue)
    first := queue[0]
    queue = queue[1:] // dequeue
    fmt.Println("Извлечён элемент (FIFO):", first)
}

В этом примере стек извлекает последний добавленный элемент, а очередь — первый.