Sobes.tech
Senior

Εξηγήστε τη διαφορά μεταξύ LIFO και FIFO με ένα παράδειγμα στοίβας και ουράς.

sobes.tech AI

Απάντηση από AI

LIFO (Last In, First Out) και FIFO (First In, First Out) είναι δύο τρόποι οργάνωσης δεδομένων.

  • LIFO — ο τελευταίος που μπήκε, ο πρώτος που βγαίνει. Παράδειγμα: στοίβα. Το τελευταίο στοιχείο που προστίθεται εξάγεται πρώτο.
  • FIFO — ο πρώτος που μπήκε, ο πρώτος που βγαίνει. Παράδειγμα: ουρά. Τα στοιχεία εξάγονται με τη σειρά που προστίθενται.

Παράδειγμα σε Go:

package main

import "fmt"

func main() {
    // Στοίβα (LIFO)
    stack := []int{}
    stack = append(stack, 1) // push
    stack = append(stack, 2)
    fmt.Println("Στοίβα:", stack)
    top := stack[len(stack)-1]
    stack = stack[:len(stack)-1] // pop
    fmt.Println("Εξαγόμενο στοιχείο (LIFO):", top)

    // Ουρά (FIFO)
    queue := []int{1, 2, 3}
    fmt.Println("Ουρά:", queue)
    first := queue[0]
    queue = queue[1:] // dequeue
    fmt.Println("Εξαγόμενο στοιχείο (FIFO):", first)
}

Σε αυτό το παράδειγμα, η στοίβα εξάγει το τελευταίο στοιχείο που προστέθηκε, και η ουρά το πρώτο.