Data structures - Circular Queue A circular queue also called a ring buffer is a fixed-capacity queue where the tail wraps around to the front of the underlying array once it reaches the end. This avo
Data structures - Doubly Linked List A doubly linked list is a linear data structure where each node stores a value and two pointers — one to the next node and one to the previous node. This bidirecti
Data structures - Linked List A linked list is a linear data structure where each element node stores a value and a pointer to the next node. Unlike arrays, nodes are not stored contiguously in memory
Data structures - Priority Queue A priority queue is an abstract data type where each element has an associated priority. Elements are dequeued in priority order — the element with the highest priorit
Data structures - Queue A queue is a linear data structure that follows the First-In, First-Out FIFO principle: the first element added is the first one removed — just like a checkout line at a store.
Data structures - Splay Tree A splay tree is a self-adjusting binary search tree. Every access search, insert, or delete performs a splay operation that moves the accessed node to the root via a serie
Data structures - Stack A stack is a linear data structure that follows the Last-In, First-Out LIFO principle: the last element added is the first one removed — just like a stack of plates. This noteb
Numerical computing - Dask versus Numpy This notebook benchmarks Dask against NumPy CPU for matrix multiplication and tabular data I/O. The goal is to understand when Dask’s parallel, chunked executio
Numerical computing - Intro to Dask Dask is a flexible parallel computing library for Python that scales from a laptop to a cluster. It mirrors the APIs of NumPy, Pandas, and scikit-learn so existing
Numerical computing - Intro to DuckDB DuckDB is an in-process analytical database that runs entirely inside your Python session. It is optimised for OLAP analytical workloads: fast aggregations, scans