Sobes.tech
Senior

Spiega la differenza tra LIFO e FIFO usando un esempio di stack e coda.

sobes.tech AI

Risposta dell'AI

LIFO (Last In, First Out) e FIFO (First In, First Out) sono due metodi di organizzazione dei dati.

  • LIFO — l'ultimo arrivato, il primo ad uscire. Esempio: pila. L'elemento aggiunto più recentemente viene estratto per primo.
  • FIFO — il primo arrivato, il primo ad uscire. Esempio: coda. Gli elementi vengono estratti nell'ordine in cui sono stati aggiunti.

Esempio in Go:

package main

import "fmt"

func main() {
    // Pila (LIFO)
    stack := []int{}
    stack = append(stack, 1) // push
    stack = append(stack, 2)
    fmt.Println("Pila:", stack)
    top := stack[len(stack)-1]
    stack = stack[:len(stack)-1] // pop
    fmt.Println("Elemento estratto (LIFO):", top)

    // Coda (FIFO)
    queue := []int{1, 2, 3}
    fmt.Println("Coda:", queue)
    first := queue[0]
    queue = queue[1:] // dequeue
    fmt.Println("Elemento estratto (FIFO):", first)
}

In questo esempio, la pila estrae l'ultimo elemento aggiunto, mentre la coda il primo.