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

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

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

## 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

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.

## 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

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

## 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

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.

## 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?

a) ABCD
b) DCBA
c) DCAB
d) ABDC

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

## 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.

## 44. A queue follows __

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

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

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

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

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.

## 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

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.

## 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?

a) ABCD
b) DCBA
c) DCAB
d) ABDC

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

## 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

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 ^ -)

## 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

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.

## 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

Explanation: Job Scheduling is not performed using stacks.

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

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

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.

## 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

Explanation: Stack follows LIFO.

## 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+

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 * +.

## 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 +)

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 +.

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

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

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.

## 32. Which data structure is used for implementing recursion?

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

Explanation: Stacks are used for the implementation of Recursion.

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

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

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

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

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

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.

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

a) -/^ACBDE

b) -ABCD^DE
c) -A/BC^DE

d) -A/BC^DE

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.

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

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

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.

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

a) AB/CD+

b) ABCD/+
c) ABC+/D

d) ABCD+/

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

## 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

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.

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

b) Stack
c) Queue
d) Tree

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.

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

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

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.

## 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 /

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/

## 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

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.

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

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

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

## 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

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.

## 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

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

## 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

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).

## 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

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.

## 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

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.

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

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

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.

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

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

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.

## 13. Elements in an array are accessed _

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

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

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

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

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

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

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

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

## 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

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.

## 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

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

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

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

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.

## 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

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

## 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};System.out.println(arr[5]);}}

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

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

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};System.out.println(arr[2]);System.out.println(arr[4]);}}

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

Explanation: Array indexing starts from 0

## 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;

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

## 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);

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

## 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);