Sobes.tech
Senior

Explique a diferença entre LIFO e FIFO usando um exemplo de uma pilha e uma fila.

sobes.tech IA

Resposta da IA

LIFO (Last In, First Out) e FIFO (First In, First Out) são duas formas de organizar dados.

  • LIFO — o último a chegar, o primeiro a sair. Exemplo: pilha. O elemento adicionado mais recentemente é extraído primeiro.
  • FIFO — o primeiro a chegar, o primeiro a sair. Exemplo: fila. Os elementos são extraídos na ordem em que foram adicionados.

Exemplo em Go:

package main

import "fmt"

func main() {
    // Pilha (LIFO)
    stack := []int{}
    stack = append(stack, 1) // empurrar
    stack = append(stack, 2)
    fmt.Println("Pilha:", stack)
    top := stack[len(stack)-1]
    stack = stack[:len(stack)-1] // remover
    fmt.Println("Elemento extraído (LIFO):", top)

    // Fila (FIFO)
    queue := []int{1, 2, 3}
    fmt.Println("Fila:", queue)
    first := queue[0]
    queue = queue[1:] // remover
    fmt.Println("Elemento extraído (FIFO):", first)
}

Neste exemplo, a pilha extrai o último elemento adicionado, e a fila o primeiro.