Sobes.tech
Senior

Explica diferența dintre LIFO și FIFO folosind un exemplu de stivă și coadă.

sobes.tech AI

Răspuns de la AI

LIFO (Last In, First Out) și FIFO (First In, First Out) sunt două moduri de organizare a datelor.

  • LIFO — ultimul venit, primul ieșit. Exemplu: stivă. Elementul adăugat cel mai recent este extras primul.
  • FIFO — primul venit, primul ieșit. Exemplu: coadă. Elementele sunt extrase în ordinea în care au fost adăugate.

Exemplu în Go:

package main

import "fmt"

func main() {
    // Stivă (LIFO)
    stack := []int{}
    stack = append(stack, 1) // push
    stack = append(stack, 2)
    fmt.Println("Stivă:", stack)
    top := stack[len(stack)-1]
    stack = stack[:len(stack)-1] // pop
    fmt.Println("Element extras (LIFO):", top)

    // Coadă (FIFO)
    queue := []int{1, 2, 3}
    fmt.Println("Coadă:", queue)
    first := queue[0]
    queue = queue[1:] // dequeue
    fmt.Println("Element extras (FIFO):", first)
}

În acest exemplu, stiva extrage ultimul element adăugat, iar coada primul.