## Data-Structures

Question 1 |

Let P be a singly linked list. Let Q be the pointer to an intermediate node x in the list. What is the worst-case time complexity of the best known algorithm to delete the node x from the list?

O(n) | |

O(log ^{2} n) | |

O(logn) | |

O(1) |

Question 2 |

The preorder traversal of a binary search tree is 15, 10, 12, 11, 20, 18, 16, 19.

Which one of the following is the postorder traversal of the tree?

20, 19, 18, 16, 15, 12, 11, 10 | |

11, 12, 10, 16, 19, 18, 20, 15
| |

10, 11, 12, 15, 16, 18, 19, 20 | |

19, 16, 18, 20, 11, 12, 10, 15 |

Postorder:

11, 12, 10, 16, 19, 18, 20, 15

Question 3 |

Consider a double hashing scheme in which the primary hash function is h_{1}(k) = k mod 23, and the secondary hash function is h_{2}(k) = 1 + (k mod 19). Assume that the table size is 23. Then the address returned by probe 1 in the probe sequence (assume that the probe sequence begins at probe 0) for key value k=90 is _______.

13 |

• K=90

• h

_{1}(k) = k mod 23 = 90 mod 23 = 21

• In case of collision, we need to use secondary hash function.

• h

_{2}(k) = 1 + (k mod19) = 1 + 90mod19 = 1+14 = 15

• Now (21+15) mod 23 = 36 mod 23 = 13

• So the address is 13.

Question 4 |

What is the worst case time complexity of inserting n elements into an empty linked list, if the linked list needs to be maintained in sorted order?

θ(n log n) | |

θ(n ^{2}) | |

θ(1) | |

θ(n) |

Total number of elements inserted into an empty linked list is O(n). So, it will take O(n) time in the worst case.

After inserting elements into an empty linked list we have to perform sorting operation.

To get minimum time complexity to perform sorting order is merge sort. It will give O(nlogn) time complexity only.

Let head be the first node of the linked list to be sorted and head Reference be the pointer to head.

The head in MergeSort as the below implementation changes next links to sort the linked lists (not data at the nodes), so head node has to be changed if the data at the original head is not the smallest value in the linked list.

Note: There are other sorting methods also will give decent time complexity but quicksort will give O(n

^{2}) and heap sort will not be suitable to apply.

Question 5 |

Consider the following C program.

#includeint main () { int a [4] [5] = {{1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}, {16, 17, 18, 19, 20}}; printf (“%d\n”, *(*(a+**a+2) +3)); return (0); }

The output of the program is _______.

19 |

#include

int main()

{

int a[4][5] = { {1,2,3,4,5},

{6,7,8,9,10},

{11,12,13,14,15},

{16,17,18,19,20}

};

printf("%d\n",a); //880 (consider base address = 880)

printf("%d\n",*a); //880

printf("%d\n",**a); //1

printf("%d\n",**a+2); //3

printf("%d\n",a+**a+2); //940

printf("%d\n",*(a+**a+2));//940

printf("%d\n",*(a+**a+2)+3);//952

printf("%d\n",*(*(a+**a+2)+3));//19

return 0;

}

Question 6 |

What is the worst case time complexity of inserting n^{2} elements into an AVL-tree with n elements initially?

θ(n ^{4})
| |

θ(n ^{2})
| |

θ(n ^{3}) | |

θ(n ^{2} log n) |

In question they asked about n

^{2}elements.

So, In worst case it will take o(n

^{2}log n) time.

Question 7 |

Let G = (V,E) be a directed, weighted graph with weight function w:E → R. For some function f:V → R, for each edge (u,v) ∈ E, define w'(u,v) as w(u,v) + f(u) - f(v).

Which one of the options completes the following sentence so that it is TRUE?

“The shortest paths in G under w are shortest paths under w’ too, _______”.

if and only if f(u) is the distance from s to u in the graph obtained by adding a new vertex s to G and edges of zero weight from s to every vertex of G | |

if and only if ∀u ∈ V, f(u) is positive
| |

if and only if ∀u ∈ V, f(u) is negative | |

for every f: V→R |

Question 8 |

In a balanced binary search tree with n elements, what is the worst case time complexity of reporting all elements in range [a,b]? Assume that the number of reported elements is k.

θ(n log k) | |

θ(log n + k) | |

θ(k log n) | |

θ(log n) |

Time complexity of the above program is O(h + k) where h is the height of BST and k is the number of nodes in a given range.

Here h is log n, hence O(log n+k).

Question 9 |

Consider the array representation of a binary min-heap containing 1023 elements. The minimum number of comparisons required to find the maximum in the heap is _______.

511 |

n=1023

= Ceil(1023/2)

= 512

So, the maximum element is also part of n/2.

So, we have to subtract from the total elements

= 512-1

= 511

Question 10 |

It is not possible to reverse a singly linked list in O (1) space. |

struct Node {

int data;

struct Node* next;

{

this->data = data;

next = NULL;

}

};

struct LinkedList {

Node* head;

LinkedList() { head = NULL; }

/* Function to reverse the linked list */

void reverse()

{

// Initialize current, previous and

// next pointers

Node* current = head;

Node *prev = NULL, *next = NULL;

while (current != NULL) {

// Store next

next = current->next;

// Reverse current node's pointer

current->next = prev;

// Move pointers one position ahead.

prev = current;

current = next;

}

head = prev;

}

For the above algorithm :

Time Complexity: O(n)

Space Complexity: O(1)

Question 11 |

6 |

Question 12 |

Consider the following statements:

- (i) First-in-first out types of computations are efficiently supported by STACKS.

(ii) Implementing LISTS on linked lists is more efficient than implementing LISTS on an array for almost all the basic LIST operations.

(iii) Implementing QUEUES on a circular array is more efficient than implementing QUEUES on a linear array with two indices.

(iv) Last-in-first-out type of computations are efficiently supported by QUEUES.

Which of the following is correct?

(ii) and (iii) are true | |

(i) and (ii) are true | |

(iii) and (iv) are true | |

(ii) and (iv) are true |

(iv) LIFO computation efficiently supported by stacks.

Then given (i) and (iv) are false.

Answer:- A

Question 13 |

An advantage of chained hash table (external hashing) over the open addressing scheme is

Worst case complexity of search operations is less? | |

Space used is less | |

Deletion is easier | |

None of the above |

Question 14 |

In the balanced binary tree in the below figure, how many nodes will become unbalanced when a node is inserted as a child of the node “g”?

1 | |

3 | |

7 | |

8 |

a, b, c are going to unbalance.

Question 15 |

Which of the following sequences denotes the post order traversal sequence of the tree of question 14?

f e g c d b a | |

g c b d a f e | |

g c d b f e a | |

f e d g c b a |

Left → Right → Root

g c d b f e a

Question 16 |

The minimum number of interchanges needed to convert the array

89, 19, 40, 17, 12, 10, 2, 5, 7, 11, 6, 9, 70

into a heap with the maximum element at the root is

0 | |

1 | |

2 | |

3 |

Question 17 |

A binary search tree is generated by inserting in order the following integers:

50, 15, 62, 5, 20, 58, 91, 3, 8, 37, 60, 24

The number of nodes in the left subtree and right subtree of the root respectively is

(4, 7) | |

(7, 4) | |

(8, 3) | |

(3, 8) |

So greater than 50 will be in right subtree of 50 and less than 50 in left subtree.

So, answer will be (7, 4).

Question 18 |

A binary search tree is used to locate the number 43. Which of the following probe sequences are possible and which are not? Explain.

61 52 14 17 40 43 | |

2 3 50 40 60 43 | |

10 65 31 48 37 43 | |

81 61 52 14 41 43 | |

17 77 27 66 18 43 |

Question 19 |

The concatenation of two lists is to be performed in O(1) time. Which of the following implementations of a list should be used?

Singly linked list | |

Doubly linked list | |

Circular doubly linked list | |

Array implementation of list |

Question 20 |

Which of the following is essential for converting an infix expression to the postfix from efficiently?

An operator stack | |

An operand stack | |

An operand stack and an operator stack | |

A parse tree |

An operand stack ⇒ Postfix to Prefix

Operator & operand stack ⇒ We don't use two stacks

Parse tree ⇒ No use

Question 21 |

A binary search tree contains the value 1, 2, 3, 4, 5, 6, 7, 8. The tree is traversed in pre-order and the values are printed out. Which of the following sequences is a valid output?

5 3 1 2 4 7 8 6 | |

5 3 1 2 6 4 8 7 | |

5 3 2 4 1 6 7 8 | |

5 3 1 2 4 7 6 8 |

Option D:

Let draw binary search tree for the given sequence,

After traversing through this tree we will get same sequence.

Question 22 |

A priority queue Q is used to implement a stack that stores characters. PUSH (C) is implemented INSERT (Q, C, K) where K is an appropriate integer key chosen by the implementation. POP is implemented as DELETEMIN(Q). For a sequence of operations, the keys chosen are in

non-increasing order | |

non-decreasing order | |

strictly increasing order | |

strictly decreasing order |

Question 23 |

Which of the following statements is false?

A tree with a n nodes has (n – 1) edges | |

A labeled rooted binary tree can be uniquely constructed given its postorder and preorder traversal results | |

A complete binary tree with n internal nodes has (n + 1) leaves | |

Both B and C |

D: The maximum no. of nodes in a binary tree of height h is 2

^{h+1}- 1.

h=2 ⇒ 2

^{3}- 1 ⇒ 7

Question 24 |

A complete n-ary tree is one in which every node has 0 or n sons. If x is the number of internal nodes of a complete n-ary tree, the number of leaves in it is given by

x(n-1) + 1 | |

xn - 1 | |

xn + 1 | |

x(n+1) |

Let no. of leaf nodes = L

Let n

_{t}be total no. of nodes.

So, L+x = n

_{t}-----(I)

Also for n-ary tree with x no. of internal nodes, total no. of nodes is,

nx+1 = n

_{t}-----(II)

So, equating (I) & (II),

L+x = nx+1

L = x(n-1) + 1

Question 25 |

Let A be a two dimensional array declared as follows:

A: array [1 ... 10] [1 ... 15] of integer;

Assuming that each integer takes one memory location, the array is stored in row-major order and the first element of the array is stored at location 100, what is the address of the element a[i][j]?

15i + j + 84 | |

15j + i + 84 | |

10i + j + 89 | |

10j + i + 89 |

100 + 15 * (i-1) + (j-1)

= 100 + 15i - 15 + j - 1

= 15i + j + 84

Question 26 |

Faster access to non-local variables is achieved using an array of pointers to activation records called a

stack | |

heap | |

display | |

activation tree |

→ Use a pointer array to store the activation records along the static chain.

→ Fast access for non-local variables but may be complicated to maintain.

Question 27 |

Let p be a pointer as shown in the figure in a single linked list.

What do the following assignment statements achieve?

- q: = p → next

p → next:= q → next

q → next:=(q → next) → next

(p → next) → next:= q

(b) Compute the postfix equivalent of the following Infix expression

3 * log(x+1) - a/2

Theory Explanation. |

Question 28 |

Draw the binary tree with node labels a, b, c, d, e, f and g for which the inorder and postorder traversals result in the following sequences:

Inorder a f b c d g e Postorder a f c g e d b

Theory Explanation. |

Question 29 |

(a) Derive a recurrence relation of the size of the smallest AVL tree with height h.

(b) What is the size of the smallest AVL tree with height 8.Theory Explanation. |

Question 30 |

The number of articulation points of the following graph is

0 | |

1 | |

2 | |

3 |

Total no. of articulation points = 3

Question 31 |

(a) In a binary tree, a nil node is defined to be a node with 2 children. Use induction on the height of the binary tree to prove that the number of full nodes plus one is equal to the number of leaves.

(b) Draw a min-heap that results from insertion of the following elements in order into an initially empty min-heap: 7, 6, 5, 4, 2, 3, 1. Show the result after the deletion of the root of this heap.

Theory Explanation. |

Question 32 |

The most appropriate matching for the following pairs

X: depth first search 1: heap Y: breadth-first search 2: queue Z: sorting 3: stack

is

X – 1 Y – 2 Z – 3 | |

X – 3 Y – 1 Z – 2 | |

X – 3 Y – 2 Z – 1 | |

X – 2 Y – 3 Z – 1 |

Queue is used in breadth-first search.

Heap is used in heap.

Question 33 |

Consider the following nested representation of binary trees: (X Y Z) indicates Y and Z are the left and right sub stress, respectively, of node X. Note that Y and Z may be NULL, or further nested. Which of the following represents a valid binary tree?

(1 2 (4 5 6 7)) | |

(1 (2 3 4) 5 6) 7) | |

(1 (2 3 4) (5 6 7)) | |

(1 (2 3 NULL) (4 5)) |

(Proper Representation)

Question 34 |

Suppose you are given an array s[1...n] and a procedure reverse (s,i,j) which reverses the order of elements in a between positions i and j (both inclusive). What does the following sequence do, where 1 ≤ k ≤ n:

reverse(s, 1, k) ; reverse(s, k + 1, n); reverse(s, l, n);

Rotates s left by k positions | |

Leaves s unchanged | |

Reverses all elements of s | |

None of the above |

Question 35 |

Let LASTPOST, LASTIN and LASTPRE denote the last vertex visited in a postorder, inorder and preorder traversal. Respectively, of a complete binary tree. Which of the following is always tree?

LASTIN = LASTPOST | |

LASTIN = LASTPRE | |

LASTPRE = LASTPOST | |

None of the above |

But in case of complete binary last level need not to be full in that case LASTPRE is not equal to LASTIN.

Question 36 |

Let G be an undirected graph. Consider a depth-first traversal of G, and let T be the resulting depth-first search tree. Let u be a vertex in G and let ν be the first new (unvisited) vertex visited after visiting u in the traversal. Which of the following statements is always true?

{u, v} must be an edge in G, and u is a descendant of v in T | |

{u, v} must be an edge in G, and v is a descendant of u in T | |

If {u, v} is not an edge in G then u is a leaf in T | |

If {u, v} is not an edge in G then u and v must have the same parent in T |

In DFS after visiting u, there is no child node then back tracking is happen and then visit the node v. There is no need of (u,v) be an edge.

Question 37 |

Suppose a stack implementation supports, in addition to PUSH and POP, an operation REVERSE, which reverses the order of the elements on the stack.

(a) To implement a queue using the above stack implementation, show how to implement ENQUEUE using a single operation and DEQUEUE using a sequence of 3 operations.

(b) The following postfix expression, containing single digit operands and arithmetic operators + and *, is evaluated using a stack.

5 2 * 3 4 + 5 2 * * +

Show the contents of the stack.

- (i) After evaluating 5 2 * 3 4 +

(ii) After evaluating 5 2 * 3 4 + 5 2

(iii) At the end of evaluation.

Theory Explanation is given below. |

Dequeue → reverse, pop, reverse

(b) (i) After evaluating 5 2 * 3 4 +

Sol:

7(3+4) 10(5*2)

(ii) After evaluating 5 2 * 3 4 + 5 2

Sol:

25(5*5) 7(3+4) 10(5*2)

(iii) At the end of evaluation

Sol: 80

Question 38 |

log n | |

n/2 | |

(log _{2})^{n} - 1 | |

n |

Question 39 |

The results returned by function under value-result and reference parameter passing conventions

Do not differ | |

Differ in the presence of loops | |

Differ in all cases | |

May differ in the presence of exception |

Question 40 |

Consider the following declaration of a two dimensional array in C:

char a[100][100];

Assuming that the main memory is byte-addressable and that the array is stored starting from memory address 0, the address of a [40][50] is:

4040 | |

4050 | |

5040 | |

5050 |

= 0 + [40 * 100 * 1] + [50 * 1]

= 4000 + 50

= 4050

Question 41 |

The number of leaf nodes in a rooted tree of n nodes, with each node having 0 or 3 children is:

n/2 | |

(n-1)/3 | |

(n-1)/2 | |

(2n+1)/3 |

Question 42 |

A weight-balanced tree is a binary tree in which for each node, the number of nodes in the left subtree is at least half and at most twice the number of nodes in the right subtree. The maximum possible height (number of nodes on the path from the root to the furthest leaf) of such a tree on n nodes is best described by which of the following?

log _{2}n | |

log _{4/3}n | |

log _{3}n | |

log _{3/2}n |

No. of nodes in left sub tree = 2 right sub tree

No. of nodes in left sub tree = (n-1/3)

No. of nodes in right sub tree = 2(n-1/3)

Height of the tree = log

_{3/2}n

Question 43 |

To evaluate an expression without any embedded function calls

One stack is enough | |

Two stacks are needed | |

As many stacks as the height of the expression tree are needed | |

A Turning machine is needed in the general case |

Question 44 |

Draw all binary trees having exactly three nodes labeled A, B and C on which Preorder traversal gives the sequence C, B, A.

Theory Explanation is given below. |

Total 5 binary trees are possible with the preorder C, B, A.

Question 45 |

The following recursive function in C is a solution to the Towers of Hanoi problem.

Void move (int n, char A, char B, char C) { if (…………………………………) { move (…………………………………); printf(“Move disk %d from pole %c to pole %c\n”, n,A,C); move (………………………………….);

Fill in the dotted parts of the solution.

Theory Explanation is given below. |

move disk from source to dest //Step-2

move (disk-1, aux, dest, source) //Step-3

Recurrence: 2T(n - 1) + 1

T(n) = 2T (n - 1) + 1

= 2[2T(n - 2) + 1] + 1

= 2

^{2}T(n - 2) + 3

⁞

2

^{k}T(n - k) + (2

^{k}- 1)

= 2

^{n-1}T(1) + (2

^{n-1}- 1)

= 2

^{n-1}+ 2

^{n-1}- 1

= 2

^{n}- 1

≅ O(2

^{n})

void move (int n, char A, char B, char C) {

if (n>0)

move(n-1, A, C, B);

printf("Move disk%d from pole%c to pole%c\n", n,A,C);

move(n-1, B, A, C);

}

}

Question 46 |

Assume the following C variable declaration

int *A [10], B[10][10];

Of the following expressions

I. A[2] II. A[2][3] III. B[1] IV. B[2][3]

which will not give compile-time errors if used as left hand sides of assignment statements in a C program?

I, II, and IV only | |

II, III, and IV only | |

II and IV only | |

IV only |

ii) A[2][3] This results an integer, no error will come.

iii) B[1] is a base address of an array. This will not be changed it will result a compile time error.

iv) B[2][3] This also results an integer. No error will come.

Question 47 |

Let T(n) be the number of different binary search trees on n distinct elements. Then , where x is

n – k + 1 | |

n – k | |

n – k – 1 | |

n – k – 2 |

Question 48 |

Suppose the numbers 7, 5, 1, 8, 3, 6, 0, 9, 4, 2 are inserted in that order into an initially empty binary search tree. The binary search tree uses the usual ordering on natural numbers. What is the in-order traversal sequence of the resultant tree?

7 5 1 0 3 2 4 6 8 9 | |

0 2 4 3 1 6 5 9 8 7 | |

0 1 2 3 4 5 6 7 8 9 | |

9 8 6 4 2 3 0 1 5 7 |

Inorder: 0 1 2 3 4 5 6 7 8 9

Question 49 |

Consider the following graph

Among the following sequences:

(I) a b e g h f (II) a b f e h g (III) a b f h g e (IV) a f g h b e

Which are depth first traversals of the above graph?

I, II and IV only | |

I and IV only | |

II, III and IV only | |

I, III and IV only |

II) a → b → f → e (✖️)

III) a → b → f → h → g → e (✔️)

IV) a → f → g → h → b → e (✔️)

Question 50 |

In a heap with n elements with the smallest element at the root, the 7th smallest element can be found in time

Θ(n log n) | |

Θ(n) | |

Θ(log n) | |

Θ(1) |

^{th}smallest elements can be present in any of 7 levels. Then total possible elements can be present is seven levels is

1 + 2 + 4 + 6 + 8 + 16 + 32

Which is constant then we can find the 7

^{th}smallest element in Θ(1) time.