The linked list is a linear data structure where elements are stored in nodes, and each node points to the next one in the sequence.
A stack is a Last In, First Out (LIFO) data structure where elements are added and removed from the same end, known as the top.
A queue is a First In, First Out (FIFO) data structure where elements are added to the back and removed from the front.
A tree is a hierarchical data structure with a root element and a collection of child elements.
A graph is a collection of nodes and edges, where nodes represent entities, and edges represent relationships between those entities.
A hash table is a data structure that stores key-value pairs, allowing for efficient retrieval and insertion of data.
Bubble sort is a simple sorting algorithm that repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order.
Merge sort is a divide-and-conquer algorithm that divides an array into two halves, sorts each half, and then merges the sorted halves.
Quick sort is another divide-and-conquer algorithm that selects a 'pivot' element and partitions the other elements into two sub-arrays according to whether they are less than or greater than the pivot.
Linear search is a simple search algorithm that finds the position of a target value within a list by checking each element in sequence.
Binary search is a more efficient search algorithm that works on sorted arrays. It repeatedly divides the search interval in half until the target value is found.
Recursion is a programming technique where a function calls itself in order to solve smaller instances of a problem.
Dynamic programming is a method for solving complex problems by breaking them down into simpler, overlapping subproblems.