## Data and File Structure: Arrays, Stacks, Queues and Lists

Question Bank (Set 1)

Unit I Syllabus: Fundamentals of algorithm analysis Big ‘O’ notations, Time and space complexity of algorithms, linked lists: singly and doubly linked lists, stacks, queues, double stack, multistacks and multiqueues, deques, polynomial arithmetic, infix, postfix and prefix arithmetic expression conversion and evaluations

Questions
1. Define Data structure.

2. List the operations performed in the Linear Data Structure.

3. What is abstract datatype?

4. Define Array.

5. Write the limitations of Array.

6. What are the ways to represent the two dimensional Array in memory.

7. Calculate the address of the element a of an array a in row major order.

8. What are structures in c?

9. Define Stack.

10. What are the operations allowed in stack?

11. List the notations used to represent the arithmetic expression?

12. Write the rules for converting an Infix notation to Postfix form.

13. Write any four applications of stack.

14. Define queue.

15. Mention some applications of queue.

16. What is priority queue?

17. Define circular queue.

18. Write the conditions of circular queue.

20. What is a node?

22. What are pitfall (drawbacks) encountered in single linked lists?

23. What are the applications of linked list?

24. What are the different types of linked list?

25. Difference between Array, Stack and Queue.

26. What is dynamic memory allocation.

27. Difference between Array and Linked list.

30. Write the algorithm to count the number of nodes in a single linked list.

32. How do you Identify the first and last node in the doubly circular linked list.

33. Give the prefix and postfix form of the following given expression.
(i) (A-B*C-D)/(E+F)
(ii) ((A+B)*C-(D-E)^(F+G))
(iii) A+B*(C-D)/(P-R)

34. How address of a element is calculated in a two dimensional Array.

35. How to represent polynomial expressions into an array?

36. Write the algorithm to merge any two Linked list.

37. Write an algorithm that takes the first node in a linked list, Reverse it and return the first node in the resulting linked list without recursion and with recursion.

38. Implement a circular Queue in C using arrange to perform insertion and deletion operations.

39. Write an algorithm to perform the following operation on a singly linked list.
(i) Insert new node at the beginning of list.
(ii) Insert new node at Middle.
(iii) Delete a node in the middle and last.
(iv) Count the number of nodes.

40. Write an algorithm to perform the following operation on a doubly linked list.
(i) Insert new node at the beginning of list.
(ii) Insert new node at Middle.
(iii) Delete a node in the middle and last.
(iv) Count the number of nodes.

Text Books:
1. Mark Allen Weiss, “Data Structures and Algorithm Analysis in C”,  Addison-Wesley .

2. E. Horowitz and S. Sahani, “Fundamentals of Data Structures in C”, 2nd Edition, Universities Press, 2008.