Sobes.tech
Senior

Objasните razliku između LIFO i FIFO na primeru steka i reda.

sobes.tech АИ

Одговор од АИ

LIFO (Last In, First Out) i FIFO (First In, First Out) su dva načina organizacije podataka.

  • LIFO — poslednji je ušao, prvi izlazi. Primer: stek. Poslednji dodat element se prvi izvlači.
  • FIFO — prvi je ušao, prvi izlazi. Primer: red. Elementi se izvlače redom kojim su dodati.

Primer u Go:

package main

import "fmt"

func main() {
    // Stek (LIFO)
    stack := []int{}
    stack = append(stack, 1) // push
    stack = append(stack, 2)
    fmt.Println("Stek:", stack)
    top := stack[len(stack)-1]
    stack = stack[:len(stack)-1] // pop
    fmt.Println("Izvučen element (LIFO):", top)

    // Red (FIFO)
    queue := []int{1, 2, 3}
    fmt.Println("Red:", queue)
    first := queue[0]
    queue = queue[1:] // dequeue
    fmt.Println("Izvučen element (FIFO):", first)
}

U ovom primeru, stek izvlači poslednji dodat element, a red prvi.