Sobes.tech
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.