Ordered collections of elements of the same type, accessed by index. Efficient for random access but can be slow for insertions and deletions.
Built-in mutable sequences in Python, used to store collections of items. They are flexible and easy to modify.
Sequences of nodes, where each node contains data and a link to the next node. Efficient for insertions and deletions, but not for random access.
LIFO (Last-In, First-Out) data structures, like a stack of plates. Used for function calls, undo/redo operations, and backtracking.
FIFO (First-In, First-Out) data structures, like a line at a store. Used for task scheduling, buffering, and resource management.
Hierarchical data structures with a root node and child nodes. Used for representing file systems, decision trees, and organizing data with parent-child relationships.
Networks of nodes (vertices) connected by edges. Used for representing social networks, maps, and relationships between entities.
Unordered collections of key-value pairs, used for fast lookups by key.
Unordered collections of unique elements, used for membership testing and removing duplicates
Finding a specific element within a data structure. Examples: Linear Search, Binary Search.
Arranging elements in a specific order. Examples: Bubble Sort, Selection Sort, Insertion Sort, Merge Sort, Quick Sort, Heap Sort.
A technique where a function calls itself to solve smaller subproblems. Used for tree traversals, divide-and-conquer algorithms, and mathematical calculations.
Algorithms for traversing, searching, and analyzing graphs. Examples: Breadth-First Search (BFS), Depth-First Search (DFS), Dijkstra's Algorithm, Prim's Algorithm.
Solving problems by breaking them down into smaller overlapping subproblems. Used for optimization problems, sequence alignment, and string parsing.