Estruturas de Dados Avançadas
Segundo semestre de 2023
Todas as implementações deverão ser feitas em python, C ou C++, usando apenas bibliotecas padrão.
Periodicamente, cada aluno será chamado para apresentar a sua implementação, os testes que está desenvolvendo, etc.
As tarefas são individuais, e alunos envolvidos em cola serão sumariamente reprovados na disciplina.
Se tiver qualquer dúvida sobre o que pode ou não fazer nas suas implementações, basta perguntar no fórum.
Tarefas:
- Implementação de deque persistente usando skew binary representation.
- Implementação de uma treap e de uma treap funcional (persistente).
Sua implementação da treap deve ser recursiva, sem apontadores parent.
Se implementar uma ABB simples funcional, em vez da treap funcional,
a tarefa valerá 8.0 pontos.
- Implementação de pilha retroativa.
Se a implementação usar uma ABB simples (não balanceada),
vale nota parcial.
- Implementação de árvore de segmentos estática e dinâmica.
- Implementação de um heap cinético.
Se implementar um heap cinético sem inserção/remoção,
que não precisa de identificadores, vale nota parcial.
- Implementação de uma árvore splay e de uma treap com split e join.
- Implementação de florestas dinâmicas usando Euler tour trees, implementadas com uma splay tree ou uma treap.
- Implementação da construção trivial do vetor de sufixos de um texto T (ordene os sufixos de T)
e do vetor LCP, e implementação da construção linear, a partir do vetor LCP, dos vetores LLCP e RLCP para o texto T,
e busca de uma palavra P no texto T, simples e número de ocorrências, em tempo O(|P|+lg |T|), usando estes vetores,
e lista de ocorrências em tempo O(|P|+lg |T|+t), onde t é o número de ocorrências de P em T.
- Implementação da construção em tempo linear da árvore de sufixos de T a partir do vetor de sufixos e vetor LCP,
e busca de um padrão P, usando a árvore de sufixos (busca simples e número de ocorrências de P em T em tempo O(|P|))
e lista de ocorrências em tempo O(|P|+t), onde t é o número de ocorrências de P em T.
Implementação da construção linear do vetor de sufixos e LCP a partir da árvore de sufixos.
- Implementação da construção em tempo linear do vetor de sufixos de um texto T e do vetor LCP a partir do vetor de sufixos.
Se implementar só a construção linear do LCP a partir do vetor de sufixos, vale nota parcial.
Instruções:
Esta página está em construção.
Cristina Gomes Fernandes
Sala 107C - Tel: 3091-5709
E-mail: cris at ime.usp.br