Senior
Wyjaśnij różnicę między LIFO a FIFO na przykładzie stosu i kolejki.
sobes.tech AI
Odpowiedź od AI
LIFO (Last In, First Out) i FIFO (First In, First Out) to dwa sposoby organizacji danych.
- LIFO — ostatni wszedł, pierwszy wyszedł. Przykład: stos. Ostatnio dodany element jest usuwany jako pierwszy.
- FIFO — pierwszy wszedł, pierwszy wyszedł. Przykład: kolejka. Elementy są usuwane w kolejności, w jakiej zostały dodane.
Przykład w Go:
package main
import "fmt"
func main() {
// Stos (LIFO)
stack := []int{}
stack = append(stack, 1) // push
stack = append(stack, 2)
fmt.Println("Stos:", stack)
top := stack[len(stack)-1]
stack = stack[:len(stack)-1] // pop
fmt.Println("Usunięty element (LIFO):", top)
// Kolejka (FIFO)
queue := []int{1, 2, 3}
fmt.Println("Kolejka:", queue)
first := queue[0]
queue = queue[1:] // dequeue
fmt.Println("Usunięty element (FIFO):", first)
}
W tym przykładzie stos usuwa ostatni dodany element, a kolejka pierwszy.