Topic Library

Filter by Focus
All Abnormal Psychology Acoustics Algebra Algorithms Analytical Chemistry Anatomy Anatomy APIs & Frameworks Artificial Intelligence Assembly Languages Assessment Assessment Astrophysics Basics of Computer Science Behavioral Psychology Big Data Biochemistry Biochemistry Biochemistry Bioinformatics Bioinformatics Botany Botany Business Intelligence Calculus Cardiac Cell Biology Cell Biology Classical Mechanics Clinical Psychology Cloud Computing Cloud Data Systems Coercive Social Influence Cognitive Psychology Community Health Compiled Languages Condensed Matter Data Analysis Data Engineering Data Governance Data Structures Data Visualization Databases Databases Developmental Biology Developmental Biology Developmental Psychology DevOps Diabetes Differential Equations Discrete Math Documentation Ecology Ecology Educational Psychology Electromagnetism Emotion & Motivation Endocrine Environmental Chemistry Ethics & Law Ethics & Law ETL & Pipelines Evolution Evolution Exploratory Data Analysis Fluid Dynamics Foundations of Data Science Functional Programming Fundamentals Fundamentals of Nursing Gastrointestinal Genetics Genetics Geometry Health Promotion Human Biology Human Biology Immunology Immunology Industrial Chemistry Inorganic Chemistry Interpreted Languages Leadership & Management Leadership & Management Linear Algebra Machine Learning Materials Chemistry Maternal & Newborn Maternal & Newborn Mathematical Logic Medical-Surgical Medical-Surgical Memory Mental Health Mental Health Microbiology Microbiology Models Molecular Biology Molecular Biology NCLEX NCLEX Readiness Neurological Neuropsychology Neuroscience Neuroscience Nuclear Chemistry Nuclear Physics Number Theory Nursing Process Nutrition Nutrition Object-Oriented Programming Operating Systems Optics Organic Chemistry Orthopedics Particle Physics Pathophysiology Pathophysiology Patient Safety Pediatrics Pediatrics Personality Psychology Pharmacology Pharmacology Physical Chemistry Physiology Physiology Probability Psychological Research Methods Psychopathology Quantum Mechanics Relativity Respiratory Scripting Languages Skills Social Psychology Software Engineering Statistical Mechanics Statistics Statistics Systems Biology Systems Biology Testing Theoretical Chemistry Therapeutic Approaches Thermodynamics Trigonometry Version Control Web Development Zoology Zoology

A

A Star Search
algorithms data_structures A* search is an informed shortest-path algorithm that combines path cost so far with a heuristic estimate to the goal. It evaluates nodes using f(n) = g(n) + h(n), where g is the cost so far and h is ...
All-Pairs Shortest Path (APSP)
data_structures algorithms All-Pairs Shortest Path (APSP) finds the minimum distance between every pair of vertices in a graph. Common solutions include Floyd-Warshall for dense graphs and negative edge support, repeated Dijkst...
Array
data_structures An array is a contiguous block of memory that stores a fixed number of elements of the same type. It supports fast random access by index and predictable memory layout, which makes it cache friendly. ...
Arrays And Oop
object-oriented_programming data_structures Explores how arrays interact with object-oriented programming: how arrays are represented across languages, how to design classes that encapsulate arrays, typing and polymorphism issues (like variance...

B

Bellman-Ford Algorithm
algorithms data_structures Bellman-Ford finds single-source shortest paths in weighted directed graphs, including those with negative edge weights. It reliably detects reachable negative cycles, which makes it more general than...
Big O Notation
data_structures algorithms Big O notation describes how the running time or space usage of an algorithm grows with input size. It focuses on dominant terms and ignores constant factors, providing a language to compare and reaso...
Binary Search Tree (BST)
data_structures A binary search tree (BST) is a node-based data structure that stores keys in an ordered way to support efficient search, insertion, deletion, and traversal. Each node has up to two children, and the ...
Binary Tree
data_structures A binary tree is a hierarchical data structure where each node has at most two children, commonly referred to as the left and right child. Binary trees underpin many algorithms and specialized structu...
Binary Tree Array Representation
data_structures memory Binary trees can be stored in a flat array by mapping node positions to indices. With 0-based indexing, the left child of i is 2i + 1, the right child is 2i + 2, and the parent is floor((i - 1) / 2). ...
Boruvka Algorithm
algorithms data_structures Boruvka's algorithm builds a minimum spanning tree by repeatedly connecting each component to its cheapest outgoing edge. It starts with every vertex as its own component and merges components in roun...
Breadth-First Search (BFS)
data_structures algorithms Breadth-first search (BFS) is a method of exploring a graph outward layer-by-layer from a starting point. Its core purpose is to measure distance in terms of edge-steps, making it ideal for finding th...

C

Collision Resolution
data_structures algorithms Collision resolution refers to techniques for handling cases where two or more keys map to the same bucket or index in a hash table. Common strategies include separate chaining and open addressing (e....
Cuckoo Hashing
data_structures algorithms Cuckoo hashing is a collision-resolution strategy for hash tables that uses two (or more) hash functions. Each key has multiple possible locations; if an insertion finds a spot occupied, it "kicks out...

D

Data Structure
data_structures A data structure is a specialized way of organizing, storing, and accessing data so that operations like insertion, deletion, search, and traversal can be performed efficiently. Understanding data str...
Directed Graph
data_structures algorithms A directed graph (digraph) is a set of nodes connected by edges that have direction. It models one-way relationships like links from page A to page B or task A must happen before task B. Direction cha...
Disjoint Set Union / Union Find
data_structures algorithms Disjoint Set Union (DSU), also called Union-Find, maintains a partition of elements into disjoint sets while supporting fast queries to check if two elements share a set and to merge sets. It uses a p...

E

Edmonds-Chu-Liu Algorithm
data_structures algorithms Edmonds-Chu-Liu finds a minimum-cost arborescence: a directed, rooted spanning tree that minimizes total edge weight. It works by selecting one minimum incoming edge per node, contracting any cycles, ...

F

Floyd-Warshall Algorithm
data_structures Floyd-Warshall computes shortest path distances between every pair of vertices in a weighted graph, even with negative edges. It uses dynamic programming over a distance matrix and iteratively improve...

G

Graph
data_structures Graphs model relationships between things using vertices (nodes) and edges (links). They can be directed or undirected, weighted or unweighted, and may contain cycles. In code, graphs are typically st...
Graph Adjacency List
data_structures algorithms An adjacency list represents a graph by storing, for each vertex, a list of its neighboring vertices. It is the go-to structure for sparse graphs because it uses space proportional to V + E. Edge inse...
Graph Adjacency Matrix
data_structures algorithms An adjacency matrix is a square n×n matrix that represents a graph with n vertices. Entry A[i][j] indicates whether an edge exists from i to j, or stores the edge weight in weighted graphs. It offers ...
Graph Cost
algorithms data_structures basics_of_computer_science Graph cost captures how we measure and optimize over weighted graphs, usually by minimizing or maximizing sums of edge weights. Core problems include building minimum spanning trees, finding shortest ...
Graph Depth-First Search
data_structures algorithms Depth-first search (DFS) is a fundamental graph traversal that explores as far as possible along each branch before backtracking. It can be implemented with recursion or an explicit stack, and it work...
Graph Theory
data_structures Graph theory studies networks of nodes and connections, called vertices and edges. It gives us language and tools to model roads, social links, dependencies, and more. You learn how to represent graph...
Graph Traversal
data_structures Graph traversal is the process of visiting vertices and edges of a graph in a systematic order. The two core strategies are breadth-first search and depth-first search, each uncovering structure in di...
Greedy Algorithm
algorithms data_structures basics_of_computer_science python A greedy algorithm builds a solution step by step by always taking the locally best option available. It is fast and simple, often relying on sorting or priority queues to repeatedly pick the next bes...

H

Hash Functions
data_structures algorithms Hash functions map data of arbitrary size to fixed-size values (hashes) quickly and deterministically. Good hashes distribute inputs uniformly, minimize collisions, and are efficient. They underpin da...
Hash Table
data_structures Hash tables (also called hash maps or dictionaries) are data structures that store key–value pairs and provide average-case constant-time insertion, lookup, and deletion. They use a hash function to m...
Hash Table Linear Probing
data_structures Linear probing is a collision-resolution strategy for open-addressed hash tables. When a collision occurs, the algorithm linearly scans subsequent slots in the table (wrapping around) until it finds a...
Hash Table Open Addressing
data_structures algorithms Open addressing is a collision resolution strategy for hash tables that stores all entries inside the table array. When a collision happens, the algorithm probes alternative indices until it finds an ...
Hash Table Quadratic Probing
data_structures Quadratic probing is a collision-resolution strategy for open-addressed hash tables. When a collision occurs, it probes alternative slots using a quadratic function of the probe number to reduce clust...
Hash Table Separate Chaining
data_structures Separate chaining is a collision-resolution technique for hash tables where each table slot (bucket) stores a collection of key–value pairs that hash to the same index, typically using linked lists or...
Hashmap
data_structures A hashmap is a fast key–value data structure that uses a hash function to map keys to positions (buckets) in an array. It provides average-case constant-time insert, lookup, and delete operations by d...
Heap
data_structures Heaps are tree-based data structures that efficiently maintain a partial ordering, enabling fast access to the minimum or maximum element. Most commonly implemented as array-backed binary heaps, they ...
Heap Index Math
data_structures Heap index math is the arithmetic that maps between tree relationships and array positions in array-backed heaps. It provides constant-time formulas to find a node’s parent, children, siblings, and le...
Heapify
data_structures Heapify is the process of rearranging an array or tree so it satisfies the heap property: in a max-heap every parent is ≥ its children; in a min-heap every parent is ≤ its children. It is typically im...

I

Introduction To Algorithms
algorithms data_structures Algorithms are step-by-step methods for solving problems efficiently and correctly. This overview covers what algorithms are, how to reason about correctness, and how to measure time and space with Bi...
Introduction to Data Structures
data_structures algorithms basics_of_computer_science memory software_engineering Data structures are ways to organize data so operations like access, insert, delete, and search are efficient. The right structure can turn a slow program into a fast one by shaping how data is stored...
Introduction To Graphs
data_structures Graphs model relationships between things using nodes and edges. They can be directed or undirected, weighted or unweighted, dense or sparse. You will use them to traverse connections, find paths, sch...
Introduction To Hash Tables
data_structures Hash tables are a fundamental data structure that map keys to values using a hash function, enabling fast average-case insert, lookup, and delete operations. They organize data into buckets indexed by...
Introduction To Heaps
data_structures Heaps are tree-based data structures that maintain a partial order, enabling efficient retrieval of the minimum or maximum element. Typically implemented as arrays representing complete binary trees, ...
Introduction To Weighted Graphs
data_structures algorithms A weighted graph is a graph where each edge carries a numeric value called a weight, often representing cost, distance, time, or capacity. Weights change how you evaluate paths and structures, directl...

K

Kruskal Algorithm
data_structures algorithms Kruskal is a greedy algorithm for building a minimum spanning tree of a weighted, undirected graph. It sorts edges by weight and adds the next lightest edge that does not form a cycle, using a union-f...

M

Markov Chain
data_structures algorithms A Markov chain tracks how likely a system is to move from one state to another. The transition data can be stored either as an adjacency list (per-state neighbors and weights) or as an adjacency/trans...
Maximum Spanning Tree
algorithms data_structures A maximum spanning tree (Max-ST) connects all vertices of a weighted, undirected graph with the highest possible total edge weight while avoiding cycles. It is the mirror concept of the minimum spanni...
Minimum Spanning Tree (MST)
data_structures algorithms A minimum spanning tree (MST) connects all vertices in a weighted, undirected, connected graph with the minimum total edge weight and no cycles. It is a foundational concept for network design, cluste...

P

Prim's Algorithm
data_structures algorithms Prim's algorithm is a greedy method to build a minimum spanning tree of a connected, weighted, undirected graph. It starts from any vertex and repeatedly adds the smallest edge that connects the growi...
Priority Queue
data_structures A priority queue is an abstract data type that stores items each with an associated priority, always allowing quick access to the highest- or lowest-priority item. It underpins many algorithms and sys...

S

Shortest Path Problem (SSP)
data_structures algorithms basics_of_computer_science Shortest path problems ask for the minimum-cost route between nodes in a graph. Cost can mean hops, time, distance, or any additive weight on edges. Different constraints call for different algorithms...
Single-Pair Shortest Path (SPSP)
data_structures algorithms Single-pair shortest path finds the minimum-cost route between one source node and one target node in a graph. It differs from single-source and all-pairs problems by optimizing effort for just one pa...
Single-Source Shortest Path (SSSP)
data_structures algorithms Single-source shortest path (SSSP) finds the minimum-cost path from one start node to every other node in a weighted graph. The right algorithm depends on edge weights and graph structure: BFS for unw...

T

Tree
data_structures algorithms A tree is a hierarchical data structure where nodes are connected by edges with exactly one path from the root to any node. It models parent-child relationships and is a special case of a graph that i...
Trie
data_structures algorithms A trie is a prefix tree for strings that stores characters along paths, sharing common prefixes across keys. It offers O(L) insert, search, and prefix queries where L is the key length, largely indepe...

U

Undirected Graph
data_structures algorithms An undirected graph models relationships where connections have no direction, like mutual friendships or two-way roads. It consists of vertices (nodes) and edges that connect pairs of vertices. Key id...

W

Weighted Graph
data_structures A weighted graph is a graph where each edge has a numeric weight that represents cost, distance, capacity, or any measurable value. It can be directed or undirected, and weights may be positive, zero,...