This project is a To-Do List Manager implemented in the C programming language, designed for efficient task storage and management using a Hash Table with Linear Probing. Users can interact with a menu-driven interface to add, delete, and view tasks using unique task IDs.
- π₯ Add Task β Insert a new task by providing a unique ID and a description.
- ποΈ Delete Task β Remove a task from the table using its ID.
- π Display Tasks β Show all active tasks currently stored in the hash table.
- βοΈ Collision Resolution β Linear probing handles hash collisions effectively.
- β Deleted Slot Marking β Deleted entries are marked (
-1) to preserve probe chains. - β Duplicate Check β Prevents inserting duplicate task IDs.
Tasks are stored in an array-based hash table. The ID is hashed using a modulo operation:
These are potential improvements to extend the functionality of the program:
π Search Task by ID β Add the ability to look up a task by its unique ID.
βοΈ Update Task Description β Allow modifying the description of existing tasks.
π¦ Dynamic Table Resizing β Rehash the table when the load factor increases to maintain performance.
πΎ File Storage Support β Persist tasks using text or binary file input/output.
π Improved Deletion Logic β Implement double hashing or rehashing for better deletion efficiency.
π§ͺ Unit Testing β Create a suite of tests to validate core functionality.
π§© Command-line Arguments β Allow users to perform actions via CLI for scripting and automat