1.
Array
● Definition: A collection of elements identified by index or key, stored in contiguous
memory locations.
2. Linked List
● Definition: A linear data structure where each element (node) contains a value and a
reference (link) to the next node in the sequence.
3. Stack
● Definition: A linear data structure that follows the Last In, First Out (LIFO) principle,
where elements are added and removed from the same end.
4. Queue
● Definition: A linear data structure that follows the First In, First Out (FIFO) principle,
where elements are added at the rear and removed from the front.
5. Deque (Double-Ended Queue)
● Definition: A linear data structure that allows insertion and deletion of elements from
both ends.
6. Hash Table (Hash Map)
● Definition: A data structure that stores key-value pairs, using a hash function to
compute an index into an array of buckets or slots, from which the desired value can be
found.
7. Binary Tree
● Definition: A tree data structure in which each node has at most two children, referred to
as the left child and the right child.
8. Binary Search Tree (BST)
● Definition: A binary tree in which each node has a key greater than all the keys in its left
subtree and less than all the keys in its right subtree.
9. AVL Tree
● Definition: A self-balancing binary search tree where the difference in heights of left and
right subtrees of any node is at most one.
10. Red-Black Tree
● Definition: A self-balancing binary search tree where each node contains an extra bit for
denoting the color of the node, which can be either red or black.
11. B-Tree
● Definition: A self-balancing tree data structure that maintains sorted data and allows
searches, sequential access, insertions, and deletions in logarithmic time.
12. B+ Tree
● Definition: A type of self-balancing tree where all values are present in the leaf nodes
and internal nodes store only keys for guiding the search.
13. Max Heap
● Definition: A complete binary tree where the value of each node is greater than or equal
to the values of its children.
14. Min Heap
● Definition: A complete binary tree where the value of each node is less than or equal to
the values of its children.
15. Trie (Prefix Tree)
● Definition: A tree-like data structure used to store a dynamic set of strings, where each
node represents a common prefix shared by some strings.
16. Graph
● Definition: A collection of nodes (vertices) and edges connecting pairs of nodes, used to
represent networks of relationships.
17. Adjacency Matrix
● Definition: A 2D array used to represent a graph, where each element indicates whether
there is an edge between a pair of vertices.
18. Adjacency List
● Definition: A collection of lists used to represent a graph, where each list corresponds to
a vertex and contains the vertices adjacent to it.
19. Set
● Definition: A collection of distinct elements, typically used to test membership, add
elements, and remove elements.
20. Multiset (Bag)
● Definition: A collection of elements that allows for multiple occurrences of the same
element.
21. Priority Queue
● Definition: An abstract data type similar to a regular queue or stack, but where each
element has a priority and the element with the highest priority is served first.
22. Disjoint Set (Union-Find)
● Definition: A data structure that keeps track of a partition of a set into disjoint subsets,
supporting union and find operations.
23. Sparse Table
● Definition: A data structure used to answer range minimum queries in constant time
with preprocessing time of O(nlogn)O(n \log n)O(nlogn).
24. Segment Tree
● Definition: A tree data structure used for storing intervals or segments and allowing for
efficient querying and updating of these intervals.
25. Fenwick Tree (Binary Indexed Tree)
● Definition: A data structure that provides efficient methods for cumulative frequency
tables and can be used for querying and updating frequency tables in logarithmic time.
26. Suffix Tree
● Definition: A compressed trie of all suffixes of a given text, used in string processing
applications.
27. Suffix Array
● Definition: An array of starting positions of suffixes of a string sorted in lexicographical
order, used in string searching algorithms.
28. Bloom Filter
● Definition: A probabilistic data structure used to test whether an element is a member of
a set, with possible false positives but no false negatives.
29. Skip List
● Definition: A data structure that allows fast search within an ordered sequence of
elements, using multiple levels of linked lists.
30. Matrix
● Definition: A two-dimensional array of numbers arranged in rows and columns, used in
mathematical and computational applications.