### DSA Online Test - Quiz - MCQ Questions

Data structures and algorithms are fundamental concepts in computer science that enable efficient data organization, manipulation, and problem-solving. Understanding these concepts is crucial for developing efficient and scalable software solutions.

This quiz tests your data structures and algorithms knowledge through 35 multiple-choice questions (MCQs). It will help you assess your understanding of various data structures and sorting and searching algorithms.

## 1. What is an array?

a) A collection of items stored at contiguous memory locations
b) A collection of key-value pairs
c) A blueprint for creating objects
d) A type of function in programming

## 2. Which of the following is a characteristic of a stack data structure?

a) FIFO (First In, First Out)
b) LIFO (Last In, First Out)
c) Ordered by a key
d) None of the above

## 3. What does the 'Big O' notation describe?

a) The maximum space used by an algorithm
b) The minimum time needed by an algorithm
c) The upper bound of the running time of an algorithm
d) The bugs present in an algorithm

## 4. What is a linked list?

a) A data structure that stores elements in a linear fashion
b) A data structure consisting of a collection of elements called nodes
c) A data structure where each element points to the next
d) Both b) and c) are correct

a) Merge Sort
b) Bubble Sort
c) Quick Sort

## 6. What is a binary search tree?

a) A tree data structure in which each node has no more than two children
b) A tree data structure where each child node is smaller than the parent node
c) A tree data structure where the left child is less than the parent node, and the right child is more than the parent node
d) A non-linear data structure that maximizes data search speed

## 7. What is a queue used for in computing?

a) To manage the running tasks on a computer
b) To store data for later processing in the order elements were added
c) To reverse the order of elements
d) To perform high-speed computations

## 8. What does a depth-first search (DFS) algorithm do?

a) Visits the root node first, then the leaf nodes
b) Visits all the nodes of a graph or tree data structure by exploring as deep as possible along each branch before backtracking
c) Searches element by element starting from the last node
d) Searches only the left subtree of a graph

## 9. What is recursion in the context of programming?

a) A method of simplifying a problem by breaking it down into smaller problems
b) A function that calls itself
c) A type of loop that repeats until a condition is met
d) A programming language designed for developing web applications

## 10. What does an in-order traversal of a binary tree involve?

a) Visiting the root node first, then the left and right subtrees
b) Visiting the left subtree, the root node, and then the right subtree
c) Visiting the right subtree, the root node, and then the left subtree
d) Visiting the left and right subtrees before visiting the root node

a) O(1)
b) O(n)
c) O(log n)
d) O(n^2)

a) Array
c) Hash Table
d) Binary Tree

## 13. What does the following code do?

``````int i = 0;
while (i < 100) {
i += 5;
}
``````
a) Counts from 0 to 95 in increments of 5
b) Creates an infinite loop
c) Counts from 0 to 100 in increments of 5
d) None of the above

a) O(n)
b) O(n log n)
c) O(n^2)
d) O(log n)

## 15. What is the result of a pre-order traversal of a binary search tree?

a) Sorted order of the values
b) Reverse sorted order of the values
c) Root node visited before its children
d) Children visited before the root node

## 16. Which algorithm is not a divide-and-conquer algorithm?

a) Quick sort
b) Merge sort
c) Insertion sort
d) Binary search

a) O(1)
b) O(n)
c) O(log n)
d) O(n^2)

## 18. How does a hash table achieve an average time complexity of O(1) for lookups?

a) By using an array-based implementation
c) By using a good hash function to distribute keys
d) By sorting the data once inserted

## 19. What data structure is primarily used to implement the undo functionality in text editors?

a) Queue
b) Stack
c) Priority queue
d) Set

## 20. What does the following algorithm calculate?

``````function gcd(a, b) {
while (b != 0) {
t = b;
b = a % b;
a = t;
}
return a;
}
``````
a) The least common multiple of a and b
b) The highest common factor (gcd) of a and b
c) The summation of a and b
d) The product of a and b

## 21. What is a binary heap?

a) A type of binary tree that is completely filled except possibly for the bottom level
b) A balanced binary tree
c) A binary tree that is only filled on the right
d) A graph with no cycles

## 22. What are the characteristics of a graph data structure?

a) Only nodes
b) Only edges
c) Nodes connected by edges
d) Unordered list of elements

a) O(1)
b) O(n)
c) O(log n)
d) O(n^2)

a) Array
c) Queue
d) Tree

## 25. What does the following code snippet do in an array arr?

``````for (int i = 0; i < n; i++) {
arr[i] = i;
}
``````
a) Initializes the array with zeros
b) Initializes the array with indices
c) Checks if all elements are zero
d) Prints each element in the array

## 26. Which sorting algorithm is considered stable?

a) Quick sort
b) Heap sort
c) Merge sort
d) Selection sort

## 27. What property does a balanced binary search tree have?

a) All leaf nodes are at the same level
b) The difference between heights of left and right subtrees cannot be more than one
c) All nodes have either 0 or 2 children
d) The tree cannot have more than three levels

## 28. How is a new element added to a stack?

a) At the beginning
b) At the middle
c) At the end
d) After sorting

## 29. What is depth-first search primarily used for in graphs?

a) Finding the shortest path
b) Traversing all nodes
c) Checking connectivity
d) All of the above

## 30. What does this code calculate?

``````int fib(int n) {
if (n <= 1) return n;
return fib(n-1) + fib(n-2);
}
``````
a) Factorial of n
b) n-th Fibonacci number
c) Sum of first n natural numbers
d) n-th prime number

a) Queue
b) Stack
c) Array

## 32. What is the output of this code when searching for an element in a binary search tree?

``````bool search(TreeNode* root, int key) {
if (root == NULL) return false;
if (root->val == key) return true;
if (root->val < key) return search(root->right, key);
return search(root->left, key);
}
``````
a) Returns true if key is found, false otherwise
b) Returns the value of the key
c) Always returns true
d) Outputs the path to the key

## 33. What is a characteristic feature of a queue?

a) FIFO (First In, First Out)
b) LIFO (Last In, First Out)
c) Priority order
d) Random access

a) O(n)
b) O(log n)
c) O(n^2)
d) O(1)

a) Queue
b) Stack
c) Tree
d) Hash Table