# You are to implement an efficient positional collection of elements to share a resource.

## Question

Use the following case to answer the Question.
Case: You are to implement an efficient positional collection of elements to share a resource. The application will prevent misuse of the resource by providing restricted access only to authorized elements. Elements will only be removed from the front while insertion is at the back.
a.) Identify an Abstract Data Type (ADT) that is right for the case application design. Why?
b.) What are the operations/functions that can be performed on the ADT? (List minimum 5 operations)
c.) List options available for data representation and implementation for the ADT operations (data structure).
d.) For each operation identified in question 2 and based on your implementation preference for the data structure, give the time complexity of each operation.

## Summary

Here in the given question, we have to use the following case to identify the Abstract Data Type (ADT). And in the second question, we have to write operations that can be performed on the ADT. And then implementation for the ADT operations. After that give the time complexity of each operation.

## Explanation

A) In any queue deletion is done from the starting point. While insertion is done from the endpoint. And this generally happens by the first in first out algorithm. In this, there will be a thought that first is served first that’s why deletion is also starting from the first one. Show the abstract data type that is right for this case application design is a queue.

B) The operations/functions that can be performed on an ADT are :

• Insertion
• Deletion
• Display
• View front element
• View rear element
• Search by element value
• Search by index value

C) Options available for data representation. And implementation for the queue operations are:

• Dynamic implementation: This means we are going to implement the queue using a linked list.
• Static implementation: This means we are going to implement the queue using an array.

D) Time complexity of each operation using list implementation for n number of elements is:

• Insertion: O(1)
• Deletion: O(1)
• Display: O(n)
• View front element: O(1)
• View rear element: O(1)
• Search by element value: O(n)
• Search by index value: O(n)