Sobes.tech
Senior

Vysvetlite rozdiel medzi LIFO a FIFO na príklade zásobníka a fronty.

sobes.tech AI

Odpoveď od AI

LIFO (Last In, First Out) a FIFO (First In, First Out) sú dva spôsoby organizácie dát.

  • LIFO — posledný prišiel, prvý odíde. Príklad: zásobník. Posledný pridaný prvok sa odstráni ako prvý.
  • FIFO — prvý prišiel, prvý odíde. Príklad: fronta. Prvky sa odstraňujú v poradí, v akom boli pridané.

Príklad v Go:

package main

import "fmt"

func main() {
    // Zásobník (LIFO)
    stack := []int{}
    stack = append(stack, 1) // push
    stack = append(stack, 2)
    fmt.Println("Zásobník:", stack)
    top := stack[len(stack)-1]
    stack = stack[:len(stack)-1] // pop
    fmt.Println("Odstránený prvok (LIFO):", top)

    // Fronta (FIFO)
    queue := []int{1, 2, 3}
    fmt.Println("Fronta:", queue)
    first := queue[0]
    queue = queue[1:] // dequeue
    fmt.Println("Odstránený prvok (FIFO):", first)
}

V tomto príklade zásobník odstráni posledný pridaný prvok, zatiaľ čo fronta prvý.