Data Structures MCQ

1. Which of these best describes an array?

a) A data structure that shows a hierarchical behavior
b) Container of objects of similar types
c) Arrays are immutable once initialised
d) Array is not a data structure

Answer: B
Explanation: Array contains elements only of the same type.

2. How do you initialize an array in C?

a) int arr[3] = (1,2,3);
b) int arr(3) = {1,2,3};
c) int arr[3] = {1,2,3};
d) int arr(3) = (1,2,3);

Answer: c
Explanation: This is the syntax to initialize an array in C.

3. How do you instantiate an array in Java?

a) int arr[] = new int(3);
b) int arr[];
c) int arr[] = new int[3];
d) int arr() = new int(3);

Answer: c
Explanation: Note that int arr[]; is declaration whereas int arr[] = new int[3]; is to instantiate an array.

4. Which of the following is the correct way to declare a multidimensional array in Java?

a) int[] arr;
b) int arr[[]];
c) int[][]arr;
d) int[[]] arr;

Answer: c
Explanation: The syntax to declare multidimensional array in java is either int[][] arr; or int arr[][];

What is the output of the following Java code?

5. public class array
public static void main(String args[])
int []arr = {1,2,3,4,5};

a) 3 and 5
b) 5 and 3
c) 2 and 4
d) 4 and 2

Answer: a
Explanation: Array indexing starts from 0

6. What is the output of the following Java code?
public class array
public static void main(String args[])
int []arr = {1,2,3,4,5};

a) 4
b) 5
c) ArrayIndexOutOfBoundsException
d) InavlidInputException

Answer: c
Explanation: Trying to access an element beyond the limits of an array gives ArrayIndexOutOfBoundsException.

7. When does the Array Index Out Of Bounds Exception occur?

a) Compile-time
b) Run-time
c) Not an error
d) Not an exception at all

Answer: b
Explanation: ArrayIndexOutOfBoundsException is a run-time exception and the compilation is error-free.

8. Which of the following concepts make extensive use of arrays ?

a) Binary trees
b) Scheduling of processes
c) Caching
d) Spatial locality

Answer: d
Explanation: Whenever a particular memory location is referred to, it is likely that the locations nearby are also referred, arrays are stored as contiguous blocks in memory, so if you want to access array elements, spatial locality makes it to access quickly.

9. What are the advantages of arrays ?

a) Objects of mixed data types can be stored
b) Elements in an array cannot be sorted
c) Index of first element of an array is 1
d) Easier to store elements of same data type

Answer: d
Explanation: Arrays store elements of the same data type and present in continuous memory locations.

11. Assuming int is of 4bytes, what is the size of int arr[15];?

a) 15
b) 19
c) 11
d) 60

Answer: d
Explanation: Since there are 15 int elements and each int is of 4bytes, we get 15*4 = 60bytes.

12. In general, the index of the first element in an array is __

a) 0
b) -1
c) 2
d) 1

Answer: a
Explanation: In general, Array Indexing starts from 0. Thus, the index of the first element in an array is 0.

13. Elements in an array are accessed _

a) randomly
b) sequentially
c) exponentially
d) logarithmically

Answer: a
Explanation: Elements in an array are accessed randomly. In Linked lists, elements are accessed sequentially.

14. Process of inserting an element in stack is called __

a) Create
b) Push
c) Evaluation
d) Pop

Answer: b
Explanation: Push operation allows users to insert elements in the stack. If the stack is filled completely and trying to perform push operation stack – overflow can happen.

15. Process of removing an element from stack is called __

a) Create
b) Push
c) Evaluation
d) Pop

Answer: d
Explanation: Elements in the stack are removed using pop operation. Pop operation removes the top most element in the stack i.e. last entered element.

16. In a stack, if a user tries to remove an element from an empty stack it is called _

a) Underflow
b) Empty collection
c) Overflow
d) Garbage Collection

Answer: a
Explanation: Underflow occurs when the user performs a pop operation on an empty stack. Overflow occurs when the stack is full and the user performs a push operation. Garbage Collection is used to recover the memory occupied by objects that are no longer used.

17. Pushing an element into stack already having five elements and stack size of 5, then stack becomes _

a) Overflow
b) Crash
c) Underflow
d) User flow

Answer: a
Explanation: The stack is filled with 5 elements and pushing one more element causes a stack overflow. This results in overwriting memory, code and loss of unsaved work on the computer.

18. Entries in a stack are “ordered”. What is the meaning of this statement?

a) A collection of stacks is sortable
b) Stack entries may be compared with the ‘<‘ operation
c) The entries are stored in a linked list
d) There is a Sequential entry that is one by one

Answer: d
Explanation: In stack data structure, elements are added one by one using push operation. Stack follows LIFO Principle i.e. Last In First Out(LIFO).

19. Which of the following is not the application of stack?

a) A parentheses balancing program
b) Tracking of local variables at run time
c) Compiler Syntax Analyzer
d) Data Transfer between two asynchronous process

Answer: d
Explanation: Data transfer between the two asynchronous process uses the queue data structure for synchronisation. The rest are all stack applications.

20. Consider the usual algorithm for determining whether a sequence of parentheses is balanced. The maximum number of parentheses that appear on the stack AT ANY ONE TIME when the algorithm analyzes: (()(())(()))?

a) 1
b) 2
c) 3
d) 4 or more

Answer: b
Explanation: In the entire parenthesis balancing method when the incoming token is a left parenthesis it is pushed into stack. A right parenthesis makes pop operation to delete the elements in stack till we get left parenthesis as top most element. 3 elements are there in stack before right parentheses comes. Therefore, maximum number of elements in stack at run time is 3.

21. What is the value of the postfix expression 6 3 2 4 + – *?

a) 1
b) 40
c) 74
d) -18

Answer: d
Explanation: Postfix Expression is (6*(3-(2+4))) which results -18 as output.

22. Here is an infix expression: 4 + 3(63-12). Suppose that we are using the usual stack algorithm to convert the expression from infix to postfix notation. The maximum number of symbols that will appear on the stack AT ONE TIME during the conversion of this expression?

a) 1
b) 2
c) 3
d) 4

Answer: d
Explanation: When we perform the conversion from infix to postfix expression +, *, (, * symbols are placed inside the stack. A maximum of 4 symbols are identified during the entire conversion.

23. The postfix form of the expression (A+ B)(CD- E)*F / G is?

a) AB+ CDE – FG /*
b) AB + CD* E – F *G /

c) AB + CD E – *F *G /
d) AB + CDE * – * F *G /

Answer: c
Explanation: (((A+ B)*(C*D- E)*F) / G) is converted to postfix expression as (AB+(*(C*D- E)*F )/ G) (AB+CD*E-*F) / G (AB+CD*E-*F * G/). Thus Postfix expression is AB+CD*E-*F*G/

24. The data structure required to check whether an expression contains a balanced parenthesis is?

a) Stack
b) Queue
c) Array
d) Tree

Answer: a
Explanation: The stack is a simple data structure in which elements are added and removed based on the LIFO principle. Open parenthesis is pushed into the stack and a closed parenthesis pops out elements till the top element of the stack is its corresponding open parenthesis. If the stack is empty, parenthesis is balanced otherwise it is unbalanced.

25. What data structure would you mostly likely see in non recursive implementation of a recursive algorithm?

a) Linked List
b) Stack
c) Queue
d) Tree

Answer: b
Explanation: In recursive algorithms, the order in which the recursive process comes back is the reverse of the order in which it goes forward during execution. The compiler uses the stack data structure to implement recursion. In the forwarding phase, the values of local variables, parameters and the return address are pushed into the stack at each recursion level. In the backing-out phase, the stacked address is popped and used to execute the rest of the code.

26. The process of accessing data stored in a serial access memory is similar to manipulating data on a __

a) Heap
b) Binary Tree
c) Array
d) Stack

Answer: d
Explanation: In serial access memory data records are stored one after the other in which they are created and are accessed sequentially. In stack data structure, elements are accessed sequentially. Stack data structure resembles the serial access memory.

10. What are the disadvantages of arrays?

a) Data structure like queue or stack cannot be implemented
b) There are chances of wastage of memory space if elements inserted in an array are lesser than the allocated size
c) Index value of an array can be negative
d) Elements are sequentially accessed

Answer: b
Explanation: Arrays are of fixed size. If we insert elements less than the allocated size, unoccupied positions can’t be used again. Wastage will occur in memory.

27. The postfix form of A*B+C/D is?

a) AB/CD+

b) ABCD/+
c) ABC+/D

d) ABCD+/

Answer: b
Explanation: Infix expression is (A*B)+(C/D) AB*+(C/D) AB*CD/+. Thus postfix expression is AB*CD/+.

28. Which data structure is needed to convert infix notation to postfix notation?

a) Branch
b) Tree
c) Queue
d) Stack

Answer: d
Explanation: The Stack data structure is used to convert infix expression to postfix expression. The purpose of stack is to reverse the order of the operators in the expression. It also serves as a storage structure, as no operator can be printed until both of its operands have appeared.

29. The prefix form of A-B/ (C * D ^ E) is?

a) -/^ACBDE

c) -A/BC^DE

d) -A/BC^DE

Answer: c
Explanation: Infix Expression is (A-B)/(C*D^E) (-A/B)(C*D^E) -A/B*C^DE. Thus prefix expression is -A/B*C^DE.

30. What is the result of the following operation?
Top (Push (S, X))

a) X
b) X+S
c) S
d) XS

Answer: a
Explanation: The function Push(S,X) pushes the value X in the stack S. Top() function gives the value which entered last. X entered into stack S at last.

31. The prefix form of an infix expression (p + q) – (r * t) is?

a) + pq – *rt
b) – +pqr * t
c) – +pq * rt
d) – + * pqrt

Answer: c
Explanation: Given Infix Expression is ((p+q)-(r*t)) (+pq)-(r*t) (-+pq)(r*t) -+pq*rt. Thus prefix expression is -+pq*rt.

32. Which data structure is used for implementing recursion?

a) Queue
b) Stack
c) Array
d) List

Answer: b
Explanation: Stacks are used for the implementation of Recursion.

33. The result of evaluating the postfix expression 5, 4, 6, +, *, 4, 9, 3, /, +, * is?

a) 600
b) 350
c) 650
d) 588

Answer: b
Explanation: The postfix expression is evaluated using stack. We will get the infix expression as (5*(4+6))*(4+9/3). On solving the Infix Expression, we get (5*(10))*(4+3) = 50*7 = 350.

34. Convert the following infix expressions into its equivalent postfix expressions.
(A + B ⋀D)/(E – F)+G

a) (A B D ⋀ + E F – / G +)
b) (A B D +⋀ E F – / G +)
c) (A B D ⋀ + E F/- G +)
d) (A B D E F + ⋀ / – G +)

Answer: a
Explanation: The given infix expression is (A + B ⋀D)/(E – F)+G. (A B D ^ + ) / (E – F) +G (A B D ^ + E F – ) + G. ‘/’ is present in stack. A B D ^ + E F – / G +. Thus Postfix Expression is A B D ^ + E F – / G +.

35. Convert the following Infix expression to Postfix form using a stack.
x + y * z + (p * q + r) * s, Follow usual precedence rule and assume that the expression is legal.

a) xyz+pqr+s+

b) xyz+pqr+s+
c) xyz+pqr+s+

d) xyzp+qr+s+

Answer: a
Explanation: The Infix Expression is x + y * z + (p * q + r) * s. (x y z ) + (p * q + r) * s. ‘+’, ‘*’ are present in stack. (x y z * + p q * r) * s. ‘+’ is present in stack. x y z * + p q * r + s * +. Thus Postfix Expression is x y z * + p q * r + s * +.

36. Which of the following statement(s) about stack data structure is/are NOT correct?

a) Linked List are used for implementing Stacks
b) Top of the Stack always contain the new node
c) Stack is the FIFO data structure
d) Null link is present in the last node at the bottom of the stack

Answer: c
Explanation: Stack follows LIFO.

37. Consider the following operation performed on a stack of size









After the completion of all operation, the number of elements present in stack is?

a) 1
b) 2
c) 3
d) 4

Answer: a
Explanation: Number of elements present in stack is equal to the difference between number of push operations and number of pop operations. Number of elements is 5-4=1.

38. Which of the following is not an inherent application of stack?

a) Reversing a string
b) Evaluation of postfix expression
c) Implementation of recursion
d) Job scheduling

Answer: d
Explanation: Job Scheduling is not performed using stacks.

39. The type of expression in which operator succeeds its operands is?

a) Infix Expression
b) Prefix Expression
c) Postfix Expression
d) Both Prefix and Postfix Expressions

Answer: c
Explanation: The expression in which operator succeeds its operands is called postfix expression. The expression in which operator precedes the operands is called prefix expression. If an operator is present between two operands, then it is called infix expressions.

40. Assume that the operators +,-, X are left associative and ^ is right associative. The order of precedence (from highest to lowest) is ^, X, +, -. The postfix expression for the infix expression a + b X c – d ^ e ^ f is?

a) abc X+ def ^^ –
b) abc X+ de^f^ –
c) ab+c Xd – e ^f^
d) -+aXbc^ ^def

Answer: b
Explanation: Given Infix Expression is a + b X c – d ^ e ^ f. (a b c X +) (d ^ e ^ f). ‘–‘ is present in stack. (a b c X + d e ^ f ^ -). Thus the final expression is (a b c X + d e ^ f ^ -)

41. If the elements “A”, “B”, “C” and “D” are placed in a stack and are deleted one at a time, what is the order of removal?


Answer: b
Explanation: Stack follows LIFO(Last In First Out). So the removal order of elements are DCBA.

42. A linear list of elements in which deletion can be done from one end (front) and insertion can take place only at the other end (rear) is known as _

a) Queue
b) Stack
c) Tree
d) Linked list

Answer: a
Explanation: Linear list of elements in which deletion is done at front side and insertion at rear side is called Queue. In stack we will delete the last entered element first.

43. The data structure required for Breadth First Traversal on a graph is?

a) Stack
b) Array
c) Queue
d) Tree

Answer: c
Explanation: In Breadth First Search Traversal, BFS, starting vertex is first taken and adjacent vertices which are unvisited are also taken. Again, the first vertex which was added as an unvisited adjacent vertex list will be considered to add further unvisited vertices of the graph. To get the first unvisited vertex we need to follows First In First Out principle. Queue uses FIFO principle.

44. A queue follows __

a) FIFO (First In First Out) principle
b) LIFO (Last In First Out) principle
c) Ordered array
d) Linear tree

Answer: a
Explanation: Element first added in queue will be deleted first which is FIFO principle.

45. Circular Queue is also known as __

a) Ring Buffer
b) Square Buffer
c) Rectangle Buffer
d) Curve Buffer

Explanation: Circular Queue is also called as Ring Buffer. Circular Queue is a linear data structure in which last position is connected back to the first position to make a circle. It forms a ring structure.

46. If the elements “A”, “B”, “C” and “D” are placed in a queue and are deleted one at a time, in what order will they be removed?


Answer: a
Explanation: Queue follows FIFO approach. i.e. First in First Out Approach. So, the order of removal elements are ABCD.

47. A data structure in which elements can be inserted or deleted at/from both ends but not in the middle is?

a) Queue
b) Circular queue
c) Dequeue
d) Priority queue

Answer: c
Explanation: In dequeuer, we can insert or delete elements from both the ends. In queue, we will follow first in first out principle for insertion and deletion of elements. Element with least priority will be deleted in a priority queue.

48. A normal queue, if implemented using an array of size MAX_SIZE, gets full when?

a) Rear = MAX_SIZE – 1
b) Front = (rear + 1)mod MAX_SIZE
c) Front = rear + 1
d) Rear = front

Answer: a
Explanation: When Rear = MAX_SIZE – 1, there will be no space left for the elements to be added in queue. Thus queue becomes full.

49. Queues serve major role in __

a) Simulation of recursion
b) Simulation of arbitrary linked list
c) Simulation of limited resource allocation
d) Simulation of heap sort

Answer: c
Explanation: Simulation of recursion uses stack data structure. Simulation of arbitrary linked lists uses linked lists. Simulation of resource allocation uses queue as first entered data needs to be given first priority during resource allocation. Simulation of heap sort uses heap data structure.

50. Which of the following is not the type of queue?

a) Ordinary queue
b) Single ended queue
c) Circular queue
d) Priority queue

Answer: b
Explanation: Queue always has two ends. So, single ended queue is not the type of queue.