DSA Assignment 2
DSA Assignment 2
(CSC232)
Assignment # 2
Techsol Software Solutions is developing a custom data management application for a client who
manages large-scale data, such as customer records, inventory, and transaction histories. The client
has requested an efficient and flexible system that uses various linked list structures for different
types of operations. As a software developer at XYZ Software Solutions, you are tasked with
building specific modules of the system using different types of linked lists based on the client's
requirements.
Scenario:
The client’s application requires different functionalities using the following linked list structures:
1. Customer Records Management: The system should use a singly linked list to manage
customer records. The operations include adding a new customer, removing a customer, and
searching for a customer’s details by their ID.
2. Inventory Tracking: The client wants to keep track of inventory items using a doubly
linked list. This will allow the client to efficiently traverse and update inventory items in
both directions (e.g., from the start of the list to the end or vice versa). Operations include
adding, deleting, and updating inventory items.
3. Transaction History Management: The application should use a circular linked list to
manage transaction history records for each customer. The circular structure is needed to
quickly access the most recent transaction and cycle through past transactions efficiently.
Assignment Tasks:
● Explain how a singly linked list is suitable for managing customer records in this scenario.
Include a discussion of its advantages and limitations compared to other data structures.
Task 3: Operations on Doubly Linked List
● Discuss why a doubly linked list is beneficial for inventory management in this case.
Include scenarios where traversing the list in both directions would be useful.
● Explain why a circular linked list is a good choice for managing the transaction history.
Discuss its benefits over singly and doubly linked lists for this specific application.
Submission Requirements:
● Submit your code along with algorithm for each implementation (Tasks 1, 3, and 5) in a
well-structured format.
● Provide explanations (Tasks 2, 4, and 6) in a separate document, discussing the suitability
of each linked list type for its respective application