This is the linked-list task manager rebuilt on a binary search tree. The interesting part is re-keying: the same set of tasks can be rebuilt into a new BST ordered by ID, name, date or duration, so different queries get an efficient ordering.
- Recursive insert, delete and search.
- Restructure traverses the tree and re-inserts every node into a fresh BST under a new key. Dates are compared as
day/month/year. - Tree statistics: node count, leaves and internal nodes.
- Performing a task marks it done in place; the performed and unperformed views are filtered in-order traversals.
gcc main.c -o tasks_bst && ./tasks_bstOption 1 loads tasks.txt, which uses the format id#name#date#duration-hours.
Data Structures (COMP2421), Birzeit University, Spring 2025.