Array ( Java )
Definition:
A contiguous block of memory storing elements of the same type, enabling random access by index.
Dynamic Array (e.g., Python list)
Definition:
A resizable array that automatically reallocates memory when capacity is exceeded.
Singly Linked List
Definition:
Each node stores data and a pointer to the next node.
Doubly Linked List
Definition:
Each node stores pointers to both its next and previous nodes.
Stack
Definition:
A LIFO (Last In, First Out) structure supporting push and pop at one end.
Queue
Definition:
A FIFO (First In, First Out) structure supporting enqueue (add) at one end and dequeue (remove) at the other.
Hash Table
Definition:
Binary Search Tree (BST)
Definition:
Heap (Min-Heap/Max-Heap)
Definition:
A complete binary tree that satisfies the heap property (parent < children in a min-heap).
Trie
Definition:
A prefix tree that stores strings character by character in nodes.
Red-Black Tree
Definition:
A generalization of BST where each node can have multiple children, commonly used in databases/filesystems.
Disjoint Set (Union-Find)
Definition:
Manages elements partitioned into disjoint sets and efficiently merges them.