# Data Structures and Algorithms | Set 1

Following questions have been asked in GATE CS exam

**1. 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 true? (GATE CS 2000)**

(a) LASTIN = LASTPOST

(b) LASTIN = LASTPRE

(c) LASTPRE = LASTPOST

(d) None of the above

Answer (d)

It is given that the given tree is complete binary tree. For a complete binary tree, the last visited node will always be same for inorder and preorder traversal. None of the above is true even for a complete binary tree.

The option (a) is incorrect because the last node visited in Inorder traversal is right child and last node visited in Postorder traversal is root.

The option (c) is incorrect because the last node visited in Preorder traversal is right child and last node visited in Postorder traversal is root.

For option (b), see the following counter example. Thanks to Hunaif Muhammed for providing the correct explanation.

1 / \ 2 3 / \ / 4 5 6 Inorder traversal is 4 2 5 1 6 3 Preorder traversal is 1 2 4 5 3 6

**2. The most appropriate matching for the following pairs**

X: depth first search 1: heapY: breadth-first search 2: queueZ: sorting 3: stack

**is (GATE CS 2000):**

(a) X—1 Y—2 Z-3

(b) X—3 Y—1 Z-2

(c) X—3 Y—2 Z-1

(d) X—2 Y—3 Z-1

Answer: (c)

Stack is used for Depth first Search

Queue is used for Breadth First Search

Heap is used for sorting

**3. 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?**

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

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

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

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

Answer (c)

**4. Let s be a sorted array of n integers. Let t(n) denote the time taken for the most efficient algorithm to determined if there are two elements with sum less than 1000 in s. which of the following statements is true? (GATE CS 2000)**

a) t (n) is 0 (1)

b) n < t (n) < n log_{2}n

c) n log_{2}n < t (n) < ^{n}C_{2}

d) t (n) = ^{n}C_{2}

Answer (a)

Let array be sorted in ascending order, if sum of first two elements is less than 1000 then there are two elements with sum less than 1000 otherwise not. For array sorted in descending order we need to check last two elements. For an array data structure, number of operations are fixed in both the cases and not dependent on n, complexity is O(1)

**5. B+ trees are preferred to binary trees in databases because (GATE CS 2000)**

(a) Disk capacities are greater than memory capacities

(b) Disk access is much slower than memory access

(c) Disk data transfer rates are much less than memory data transfer rates

(d) Disks are more reliable than memory

Answer (b)

Disk access is slow and B+ Tree provide search in less number of disk hits. This is primarily because unlike binary search trees, B+ trees have very high fanout (typically on the order of 100 or more), which reduces the number of I/O operations required to find an element in the tree.