Sobes.tech
Junior — Middle

Πώς μπορεί να υλοποιηθεί μια δομή δεδομένων ουράς σε JavaScript;

sobes.tech AI

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

Στην JavaScript, μια ουρά μπορεί να υλοποιηθεί χρησιμοποιώντας έναν πίνακα, χρησιμοποιώντας τις μεθόδους push για προσθήκη στο τέλος και shift για διαγραφή από την αρχή, που αντιστοιχεί στην αρχή FIFO (First In, First Out).

Παράδειγμα απλής υλοποίησης ουράς:

class Queue {
  constructor() {
    this.items = [];
  }

  enqueue(element) {
    this.items.push(element); // προσθήκη στο τέλος
  }

  dequeue() {
    if(this.isEmpty()) {
      return null;
    }
    return this.items.shift(); // διαγραφή από την αρχή
  }

  isEmpty() {
    return this.items.length === 0;
  }

  peek() {
    return this.isEmpty() ? null : this.items[0];
  }
}

// Χρήση:
const queue = new Queue();
queue.enqueue(1);
queue.enqueue(2);
console.log(queue.dequeue()); // 1
console.log(queue.peek());    // 2

Για πιο αποδοτική υλοποίηση (για να αποφευχθεί η μετακίνηση στοιχείων με το shift) μπορεί να χρησιμοποιηθεί μια συνδεδεμένη λίστα ή να υλοποιηθεί η ουρά με δύο δείκτες.