Este é um projeto simples de um gerenciador de tarefas (to-do list) desenvolvido em linguagem C. A principal característica do projeto é o uso de uma Árvore Binária de Busca (ABB) para armazenar e organizar as tarefas, proporcionando eficiência em operações de busca, inserção e remoção.
- Adicionar Tarefas: Insere novas tarefas na árvore.
- Remover Tarefas: Exclui tarefas específicas usando seu ID.
- Listar Tarefas Ativas: Exibe todas as tarefas com status "Ativa", ordenadas de forma crescente pelo prazo (
timeLimit). - Listar Tarefas Concluídas: Exibe todas as tarefas com status "Concluída".
- Busca Rápida: Encontra tarefas rapidamente pelo seu ID.
- Limpeza Completa: Remove todas as tarefas da memória.
O projeto se baseia em duas estruturas de dados principais para funcionar:
-
Árvore Binária de Busca (ABB): As tarefas são armazenadas nos nós de uma ABB. A chave de organização é o
idda tarefa. Isso permite que as operações de busca, inserção e remoção tenham uma complexidade de tempo média de$O(\log n)$ , tornando o sistema eficiente. -
Lista Encadeada Temporária: Para exibir as tarefas ativas ordenadas por prazo (
timeLimit), o sistema percorre a árvore, insere as tarefas ativas em uma lista encadeada, ordena essa lista usando o algoritmo Bubble Sort e, em seguida, a exibe. A lista é destruída após o uso para liberar a memória.
main.c: Arquivo principal que contém a interface do usuário e o loop de execução.task.c: Contém a implementação de todas as funções que manipulam as tarefas (adicionar, remover, listar, etc.).task.h: Arquivo de cabeçalho com as definições das estruturasTaskeActiveTaskListe os protótipos das funções.CMakeLists.txt: Arquivo de configuração para o processo de build com CMake.