**Array**: Array is a data structure that stores a fixed-size sequence of elements of the same type. It allows for efficient random access and modification of elements. The skill of working with arrays is measured in this test to evaluate the candidate's ability to manipulate and optimize data storage and retrieval using this fundamental data structure.

**LinkedList**: LinkedList is a data structure that consists of a series of nodes, each containing an element and a reference to the next node. It provides efficient insertion and deletion operations in comparison to arrays. This skill is assessed to gauge the candidate's understanding of dynamic memory allocation and their ability to implement and use linked lists for various applications.

**Stack**: Stack is an abstract data type that follows the Last-In-First-Out (LIFO) principle. It supports two primary operations: push, which adds an element to the top of the stack, and pop, which removes the topmost element. This skill is tested to assess the candidate's knowledge of stack-based algorithms and their ability to implement stack-based solutions for problems.

**Queue**: Queue is an abstract data type that follows the First-In-First-Out (FIFO) principle. It supports two primary operations: enqueue, which adds an element to the end of the queue, and dequeue, which removes the frontmost element. This skill is measured in the test to evaluate the candidate's familiarity with queue-based algorithms and their proficiency in implementing queue-based solutions for various problems.

**Tree**: Tree is a hierarchical data structure consisting of nodes connected by edges. It has a single root node and can have a varying number of child nodes. The skill of working with trees is assessed in this test to evaluate the candidate's ability to understand and implement tree-based algorithms like traversals, searching, and balancing.

**Graph**: Graph is a non-linear data structure composed of a set of nodes (vertices) and a set of edges that connect these nodes. It is used to represent relationships between objects and entities. Testing the skill of working with graphs helps measure candidates' understanding of graph algorithms like traversal, shortest path, and connectivity.

**Hashing**: Hashing is a technique that converts a given data item into a unique index value using a hash function. It allows for efficient retrieval and storage of data by minimizing the searching time. This skill is measured in the test to evaluate the candidate's ability to implement and use hash-based data structures, such as hash tables and hash maps.

**Sorting**: Sorting is the process of arranging elements in a specific order, such as ascending or descending. It is an important skill to assess as sorting algorithms are fundamental for various applications. Evaluating the candidate's proficiency in sorting algorithms helps determine their ability to efficiently organize data.

**Searching**: Searching is the process of finding a particular element(s) in a given collection of data. It is crucial for information retrieval and decision-making. Assessing the candidate's skill in searching algorithms helps identify their ability to locate and retrieve data efficiently across different data structures.

**Recursion**: Recursion is a programming technique where a function calls itself to solve a problem by breaking it into smaller sub-problems. It allows for elegant and concise code solutions but requires proper understanding and handling to avoid infinite loops. Testing the skill of recursion helps evaluate the candidate's ability to think recursively and solve complex problems efficiently.