Tarefas - Estruturas de Dados

Tarefa 0 - Primeiros passos

Prazo de entrega:

Você deve aprender a utilizar um terminal de comandos, realizar operações básicas no controle de versão Git, compilar e testar um programa em C e submeter uma tarefa na disciplina. Esta tarefa serve para testar o sistema de submissão e não fará parte da média de notas.

Tarefa 1 - Mega da Virada

Prazo de entrega:

Você deve conhecer e utilizar conceitos básicos em C como estruturas condicionais, estruturas de laços e até mesmo funções. Além disso, você deve utilizar tipos de dados primitivos e principalmente tipos de dados compostos como vetores e matrizes. Esta tarefa será corrigida automaticamente apenas.

Tarefa 2 - Professor Carlos

Prazo de entrega:

Você deve conhecer e usar variáveis do tipo caractere e realizar operações em strings, escrevendo algoritmos iterativos e utilizando funções organizadamente. Além disso, é esperado que você aplique seus conhecimentos em TADs. Esta tarefa será corrigida automaticamente apenas.

Tarefa 3 - Fake News

Prazo de entrega:

Você deve aprender a manipular registros homogêneos e heterogêneos alocados dinamicamente. É vedado o uso de alocação estática para tipos não-primitivos de dados. Esta tarefa será corrigida automaticamente com o uso da ferramenta Valgrind.

Tarefa 4 - Sea of Words

Prazo de entrega:

Você deve conhecer e utilizar conceitos de recursão e backtracking. Além disso, você deve utilizar tipos de dados primitivos e principalmente tipos de dados compostos como matrizes e strings. Esta tarefa será corrigida automaticamente com o uso da ferramenta valgrind e por um monitor.

Tarefa 5 - Calculadora de números gigantes

Prazo de entrega:

Você deve utilizar listas ligadas para armazenar números racionais, implementando operações de criação de lista, adição de nó, remoção de nó, exclusão de lista, assim como as operações aritméticas entre os números representados. Esta tarefa será corrigida automaticamente com o uso da ferramenta Valgrind e por um monitor.

Tarefa 6 - Sala de espera do Cecom

Prazo de entrega:

Você deve utilizar deques (double-ended queues) para controlar as filas em um hospital e dedicir a ordem de atendimento. Você deverá implementar operações de criação e liberação de de deques além de inserção e remoção nas duas extremidades. Esta tarefa será corrigida automaticamente com o uso da ferramenta Valgrind e por um monitor.

Tarefa 7 - O mensageiro

Prazo de entrega:

Você deve utilizar a estrutura de árvore binária de busca e strings para armazenar um conjunto dinâmico de dados. Você deve implementar operações de inserção e remoção além do percorrimento em ordem em árvore binária. Esta tarefa será corrigida automaticamente e por um monitor.

Tarefa 8 - Listas Legais

Prazo de entrega:

Você deve utilizar árvores binárias balanceadas para resolução desta atividade. Esta tarefa será corrigida automaticamente e por um monitor.

Tarefa 9 - Dia de Uber

Prazo de entrega:

Você deve utilizar a estrutura heap para organizar solicitações de corrida do Uber. Devem-se implementar as operações de inserção, remoção e atualização na estrutura além de contabilizar o lucro do motorista no dia. Esta tarefa será corrigida automaticamente e por um monitor.

Tarefa 10 - Corretor

Prazo de entrega:

Você deve conhecer e utilizar conceitos de hashing e hash table. Além disso, você deve utilizar tipos de dados primitivos e tipos de dados compostos, como strings. Esta tarefa será corrigida automaticamente com o uso da ferramenta valgrind e por um monitor.

Tarefa 11 - Pokemon Teclado & Mouse

Prazo de entrega:

Você deve criar uma estrutura de grafos para adicionar pontos de interesse, criar arestas e realizar buscas. Esta tarefa será corrigida automaticamente com o uso da ferramenta Valgrind e por um monitor.

Tarefa 12 - Editor de Planilha

Prazo de entrega:

Você deve implementar um programa para editar uma planiha eletrônica. A entrada estará armazenada em formato CSV e você precisará aprender e utilizar funções de leitura de arquivo texto para carregar a planilha. As células da planilha podem conter fórmulas que referenciam outras células, então você deverá utilizar algoritmos em grafos para detectar dependências e identificar erros.