Skip to content

CodeGeek-Garvit/To-do-list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ—‚οΈ To-Do List Manager in C (Hash Table with Linear Probing)

πŸ“Œ Overview

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.


πŸš€ Features

  • πŸ“₯ 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.

🧠 How It Works

Tasks are stored in an array-based hash table. The ID is hashed using a modulo operation:

πŸ“ˆ Future Enhancements

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages