CS2201 Data Structure Tutorial
CS2201 Data Structure Tutorial
CS2201 Data Structure Tutorial
Module – I
1. How can you define algorithms? Discuss structure and properties of algorithms.
6. Compare and contrast exponential time complexity with polynomial time complexity.
for send = 1 to n do
end
end
end
= a, if n = 1
Module – II
10. Distinguish between row major and column major ordering of an array.
11. For an n-dimensional array [1 : u1, 1: u2, … 1 : un] obtain the address of the element A[i1, i2, i3, … in]
given β to be the home address.
12. Declare a one, two and a three-dimensional array in a programming language ( C/C++) which has the
capability to display the addresses of array elements. Verify the various address calculation formulae for
any arbitrary element of these arrays.
13. Open an ordered list L[d1, d2, … dn] where each di is the name of a peripheral device, which is
maintained in the alphabetical order. Write a program to
a. Insert a device dk onto the list L.
b. Delete an existing device di from L. In this case the new ordered list should be Lnew = (d1, d2,
… di-1, di+1, … dn) with (n – 1) elements.
16. If a stack S[1 : N] were to be implemented with the bottom of the stack at S[N], write a procedure to
undertake push and pop operations on S.
(ii) Evaluate the postfix expression for a = true, b = false, c = true, d = true, e = true, h = false.
18. Implement a stack S of n elements using arrays. Write functions to perform PUSH and POP operations.
Implement queries using push and pop functions to
a. Retrieve the mth element of the stack S from the top (m < n), leaving the stack without its top
m – 1 elements.
b. Retain only the elements in the odd position of the stack and pop out all even positioned
elements.
19. Write a recursive program to obtain the nth order Fibonacci sequence number. Include appropriate
input/output statements to track the variables participating in recursion.
20. Implement a program to evaluate any given postfix expression. Test your program for the evaluation of
the equivalent postfix form of the expression ( - (A*B)/D) ↑ C + E – F * H * I for A = 1, B = 2, D = 3, C =
14, E = 110, F = 220, H = 16.78, I = 364.621.
21. What are the disadvantages of the linear queues? How do circular queues help overcome the
disadvantages of linear queues?
22. If FRONT and REAR were pointers to the physical front and rear of a linear queue, comment on the
condition, FRONT = REAR.
24. Write a program to maintain a list of items as a circular queue which is implemented using an array.
Simulate insertions and deletions to the queue and display the content of the queue after every operation.
25. Let PQUE be a priority queue data structure and , be n elements with priorities pi (
0 ≤ pi ≤ m – 1). Implement PQUE as a two dimensional array ARR_PQUE[1:m, 1:d] where m is the number
of priority values and d is the maximum number of data items with a given priority. Execute insertions and
deletions presented in a random sequence.
26. Implement a deque DQUE in a one dimensional array.
Module – III
28. What are the advantages of circular lists over singly linked lists?
29. What are the advantages and disadvantages of doubly linked lists over singly linked lists?
31. What are the conditions for testing a linked list T is empty, if T is a (i) Simple singly linked list (ii)
headed singly linked list (iii) Simple circularly linked list and (iv) headed circularly linked list?
32. Sketch a multiply linked list representation for the following sparse matrix:
-9 0 0 0
0 0 0 0
0 5 0 2
0 7 0 5
33. Demonstrate the application of singly linked lists for the addition of the polynomials P1 and P2 given below:
33. Let X = (x1, x2, … xn), Y = (y1, y2, …yn) be two lists with a sorted sequence of elements. Write a
program to merge the two lists together as a single list Z with m + n elements. Implement the lists using
singly linked list representations.
34. Write a program which will split a circularly linked list P with n nodes into two circularly linked lists
P1, P2 with the first and the last n - nodes of the list P in them, respectively.
35. What are the merits of linked stacks and queues over their sequential counterparts?
36. How is the memory storage pool associated with a linked stack data structure for its operations?
37. How are push and pop operations implemented on a linked stack?
39. Outline the node structure and a linked queue to represent the polynomial: 17x5 + 18x2 + 9x + 89.
40. Write a program to evaluate a postfix expression using a linked stack implementation.
Module – IV
42. For a graph of your choice, trace its (i) adjacency matrix and (ii) adjacency list representations.
43. Draw graphs that contain (i) an Eulerian walk and (ii) a Hamiltonian circuit.
44. How can graph traversal procedures help in detecting graph connectivity?
46. Implement Dijkstra’s algorithm to obtain shortest path from a given source vertex (of your choice) to
every other vertex of a graph of your choice which must at least 10 nodes with 5 cycles.
Module - V
47. Sketch (i) an array representation and (ii) a linked representation for the binary tree shown in figure 1.
4 9
5 7
Fig. 1
48. Sketch a linked representation for a threaded binary tree equivalent of the binary tree shown in fig. 1.
49. Obtain inorder and post order traversals for the binary tree shown in fig. 1.
50. Draw an expression tree for the following logical expression: p and (q or not k) and (s or b or h)
51. Given the following inorder and preorder traversals, trace the binary tree.
52. Write a program to implement a binary tree using linked representation. Use functions to traverse it in
inorder, preorder and post order.
53. Write a recursive function to count the number of nodes in a binary tree.
54. Write non-recursive functions to perform inorder, preorder and post order traversals of a binary tree.
55. How is binary search tree representation of lists advantageous over their sequential list representations?
56. How is the deletion of a node that has both left and right subtrees, undertaken in a binary search tree?
58. How is the rotation free deletion of a node having both the subtrees, done in an AVL search tree?
59. For the data list { AND, BEGIN, CASE, DO , END , FOR, GOTO, IF, IN, LET, NOT, OR, QUIT,
READ, REPEAT, RESET, THEN, UNTIL, WHILE, XOR}
60. What are the merits of m-way search trees over AVL search trees?
64. Insert the following elements in the order given into an empty B tree of order (i) 3 (ii) 4 and (iii) 7: Z R
T A D F H Q W C V B S E O P L J K M N U T X.
Undertake the following operations on the B trees: (i) delete Q (ii) delete A (iii) delete M
65. For the data list given in Question 63, construct a 3-way search tree. Insert G and delete J K and Z from
the search tree.
Module – VI
67. When is a sorting process said to be stable? Why is bubble sort stable?
69. Distinguish between a heap and a binary search tree. Give an example.
70. Can bubble sort ever perform better than quick sort? If so, list a case.
71. Trace Quick sort on the following list L = { 123, 678, 345, 225, 890, 345, 111, 654, 789, 144, 324,
209}.
Module – VII
72. What are the advantages of binary search over sequential search?
75. For the following search list undertake (i) linear ordered search (ii) binary search in the data list given.
Tabulate the number of comparisons made for each key in the search list.
Data list: {111, 453, 231, 112, 679, 238, 876, 655, 766, 877, 988, 009, 122, 233, 344, 566}
76. For the given data list and search list, tabulate the number of comparisons made when (i) a transpose
sequential search and (ii) interpolation search is undertaken on the keys belonging to the search list.
Data list: {pin, ink, pen, clip, ribbon, eraser, duster, chalk, pencil, paper, stapler, pot, scale, calculator}
Search list: {pen, clip, paper, pin, calculator}
------