Назад к вопросам
Senior
5
Объясните разницу между LIFO и FIFO на примере стека и очереди.
Компании, где спрашивали
Алабуга
Ответ от нейросети
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)
}
В этом примере стек извлекает последний добавленный элемент, а очередь — первый.