collections Module
The collections module introduces specialized data structures beyond built-in Arrays and Maps: Stack, Queue, Deque, Set, LinkedList, and PriorityQueue.
Importing
djazair
use collections
Data Structures Catalog
1. Stack (LIFO)
djazair
use collections
let s = new collections.Stack()
s.push(10)
s.push(20)
print(s.peek()) # => 20
print(s.pop()) # => 20
print(s.size()) # => 1
print(s.isEmpty()) # => False
2. Queue (FIFO) & Deque (Double-Ended)
djazair
use collections
# Queue
let q = new collections.Queue()
q.enqueue("Task 1")
q.enqueue("Task 2")
print(q.dequeue()) # => "Task 1"
# Deque (pushFront, pushBack, popFront, popBack)
let d = new collections.Deque()
d.pushBack(10)
d.pushFront(5)
print(d.popFront()) # => 5
print(d.popBack()) # => 10
3. Set (Unique Elements & Math Operations)
djazair
use collections
let s1 = new collections.Set()
s1.add(1).add(2).add(3)
let s2 = new collections.Set()
s2.add(2).add(3).add(4)
# Set algebra
let unionSet = s1.union(s2) # contains 1, 2, 3, 4
let intersectSet = s1.intersection(s2) # contains 2, 3
let diffSet = s1.difference(s2) # contains 1
print(s1.has(2)) # => True
print(s1.has(99)) # => False
4. PriorityQueue (Min-Heap / Priority Ordering)
djazair
use collections
let pq = new collections.PriorityQueue()
pq.enqueue("Low priority task", 4)
pq.enqueue("Critical emergency", 1)
pq.enqueue("Medium priority task", 2)
# Dequeues in priority order (1 is highest priority):
print(pq.dequeue()) # => "Critical emergency"
print(pq.dequeue()) # => "Medium priority task"