Kalkwst / MicroLib

MIT License
3 stars 0 forks source link

:sparkles: Add Predicated Queue Decorator #32

Open Kalkwst opened 1 year ago

Kalkwst commented 1 year ago

A predicated queue decorator is an additional layer of functionality that can be applied to an existing queue data structure, allowing it to use a specific rule or condition, known as a predicate, to organize its elements. The decorator allows the user to define a specific predicate for the queue, which will be used to organize the elements in the queue in a specific way, without modifying the underlying queue data structure. This enables the user to add this functionality to an existing queue without having to change the way the queue is implemented.

From a more technical perspective, a predicated queue decorator is a design pattern that can be used to add a new layer of functionality to an existing data structure. It is used to add a predicate-based organization to an existing queue without having to change its underlying implementation. The decorator pattern is implemented using inheritance and composition, where the decorator class inherits from the queue class and adds new methods and/or fields to the queue class. The decorator class wraps the existing queue object and adds the new predicate-based functionality by overriding the appropriate methods. The new methods of the decorator class use the predicate to organize the elements in the underlying queue object. This way, the decorator class can be easily added to any existing queue and can be easily removed if it's not needed anymore. The time complexity of the enqueue, dequeue and peek operations in a predicated queue decorator depend on the complexity of the predicate and the size of the queue.