2
Estrutura de Dados
IFG
56
Estrutura de Dados
IFG
28
Estrutura de Dados
IFG
5
Estrutura de Dados
IFES
3
Estrutura de Dados
IFES
7
Estrutura de Dados
IFF
1
Estrutura de Dados
FAST
4
Estrutura de Dados
IFES
6
Estrutura de Dados
IFF
Texto de pré-visualização
Ministério da Educação Instituto Federal de Goiás Campus Luziânia Departamento de Áreas Acadêmicas Estrutura de Dados II 1º Trabalho Árvore AVL Questão 1 100 Ponto TEMA Sistema de Autocompletar com Árvore AVL Objetivo Aplicar os conhecimentos de Árvores AVL na implementação de um sistema de autocompletar simulando funcionalidades encontradas em editores de texto buscadores e interfaces inteligentes Descrição da Atividade Neste trabalho deve ser desenvolvido uma aplicação que utiliza Árvores AVL como estrutura principal para armazenar um dicionário de palavras A aplicação deve implementar os seguintes requisitos 1 O sistema deve autocompletar palavras com base nos prefixos digitados pelo usuário Ou seja dada uma palavra de prefixo digitado pelo usuário a aplicação deve retornar uma lista de palavras armazenadas na árvore que começam com esse prefixo 2 O sistema deve permitir inserir e remover palavras no dicionário de forma dinâmica 3 O sistema deve persistir o dicionário em arquivo texto 4 O sistema deve incluir operações de inserção busca e pesquisa em ordem Funcionalidades Esperadas O seu programa deverá Carregamento inicial do dicionário a partir de um arquivo txt Entrada do usuário a cada letra digitada mostrar sugestões com base nas palavras do dicionário Menu de interação simples via terminal ou interface básica Exemplo de uso Esperado Dicionário casa carro cachorro cadeira caneta mesa mala Entrada 1 Prefixo ca Saída esperada cachorro cadeira casa carro caneta Entrada 2 prefixo cas Saída esperada casa Ministério da Educação Instituto Federal de Goiás Campus Luziânia Departamento de Áreas Acadêmicas Estrutura de Dados II Entrega Códigofonte funcional desenvolvido na linguagem Java organizado e documentado Relatório técnico contendo o Explicação da lógica sobre as funcionalidades desenvolvidas o Prints dos testes e exemplos de uso o Reflexão sobre os desafios e decisões tomadas Critérios de Avaliação Serão considerados 3 aspectos para a nota final do trabalho o Funcionamento correto da Árvore AVL 30 o Funcionamento das funcionalidades autocompletar 30 o Estrutura organização e comentários no código 10 o Clareza e qualidade do relatório técnico 30 Prazos A data de entrega deste trabalho será 28052025 Observações Finais O trabalho deverá ser desenvolvido individualmente ou em duplas A presença de comentários no código ajuda na compreensão e será considerada na nota São anulados aqueles trabalhos nos quais forem detectados quaisquer tipos de cópias ou plágio não importa a origem Relatorio Tecnico Sistema de Autocompletar com Arvore AVL Savio 22 de maio de 2025 Sumario 1 Introducao 2 2 Objetivos 2 3 Metodologia 2 31 Estrutura de Dados 2 32 Funcionalidades Implementadas 2 4 Interface Grafica 2 5 Codigofonte Principal 3 6 Resultados 3 7 Conclusao 3 8 Referˆencias 4 1 Relatorio Tecnico Sistema de Autocompletar AVL 1 Introducao Este relatorio apresenta o desenvolvimento de um sistema de autocompletar baseado em uma arvore AVL utilizando a linguagem Java e a biblioteca grafica Swing O objetivo principal e permitir a insercao remocao busca por prefixo e exibicao ordenada de palavras armazenadas de forma balanceada em uma arvore binaria 2 Objetivos Implementar uma arvore AVL para armazenar palavras em ordem lexicografica Permitir a busca eficiente de sugestoes com base em prefixos autocompletar Criar uma interface grafica amigavel para o usuario interagir com o sistema Salvar e carregar as palavras de um arquivo externo 3 Metodologia O programa foi desenvolvido em Java utilizando a estrutura de dados AVL que e uma arvore binaria de busca balanceada A interface grafica foi construıda com Swing permi tindo entrada de dados sugestoes automaticas e visualizacao ordenada das palavras 31 Estrutura de Dados A arvore AVL e uma estrutura autobalanceada onde a diferenca entre as alturas das subarvores esquerda e direita de qualquer no nunca e superior a 1 Isso garante operacoes de insercao remocao e busca em tempo Olog n 32 Funcionalidades Implementadas Insercao de Palavras Insercao na arvore AVL com balanceamento Busca por Prefixo Pesquisa recursiva de palavras que comecem com determinado prefixo Remocao de Palavras Exclusao segura com rebalanceamento da arvore Exibicao em Ordem Alfabetica Percurso inorder da arvore Persistˆencia de Dados Leitura e escrita em arquivo texto dictionarytxt 4 Interface Grafica A interface foi desenvolvida com os seguintes componentes Campo de texto para entrada de prefixos Lista dinˆamica que mostra sugestoes conforme o texto digitado Botoes para adicionar remover e exibir palavras em ordem 2 Relatorio Tecnico Sistema de Autocompletar AVL Figura 1 Interface principal do sistema 5 Codigofonte Principal A seguir um trecho do codigo da classe principal que integra a arvore AVL com a interface Swing 1 inputFieldgetDocument addDocumentListener new DocumentListener 2 public void changedUpdateDocumentEvent e updateSuggestions 3 public void removeUpdateDocumentEvent e updateSuggestions 4 public void insertUpdateDocumentEvent e updateSuggestions 5 6 7 addButton addActionListener e addWord 8 removeButton addActionListener e removeWord 9 listAllButton addActionListener e showAllWords Listing 1 Trecho da interface grafica 6 Resultados O sistema apresentou os seguintes resultados Tempo de resposta rapido para sugestoes de palavras Ordenacao correta ao exibir todas as palavras Insercao e remocao mantiveram a arvore balanceada Arquivo de persistˆencia atualizado corretamente 7 Conclusao O sistema de autocompletar com arvore AVL atende as expectativas de desempenho e funcionalidade A estrutura AVL provou ser eficiente para armazenar e consultar palavras 3 Relatorio Tecnico Sistema de Autocompletar AVL mesmo com grande volume de dados A interface grafica oferece uma experiˆencia amigavel ao usuario 8 Referˆencias Cormen T H et al Algoritmos Teoria e Pratica Java API Documentation httpsdocsoraclecomjavase8docsapi Estruturas de Dados em Java Material didatico 4
2
Estrutura de Dados
IFG
56
Estrutura de Dados
IFG
28
Estrutura de Dados
IFG
5
Estrutura de Dados
IFES
3
Estrutura de Dados
IFES
7
Estrutura de Dados
IFF
1
Estrutura de Dados
FAST
4
Estrutura de Dados
IFES
6
Estrutura de Dados
IFF
Texto de pré-visualização
Ministério da Educação Instituto Federal de Goiás Campus Luziânia Departamento de Áreas Acadêmicas Estrutura de Dados II 1º Trabalho Árvore AVL Questão 1 100 Ponto TEMA Sistema de Autocompletar com Árvore AVL Objetivo Aplicar os conhecimentos de Árvores AVL na implementação de um sistema de autocompletar simulando funcionalidades encontradas em editores de texto buscadores e interfaces inteligentes Descrição da Atividade Neste trabalho deve ser desenvolvido uma aplicação que utiliza Árvores AVL como estrutura principal para armazenar um dicionário de palavras A aplicação deve implementar os seguintes requisitos 1 O sistema deve autocompletar palavras com base nos prefixos digitados pelo usuário Ou seja dada uma palavra de prefixo digitado pelo usuário a aplicação deve retornar uma lista de palavras armazenadas na árvore que começam com esse prefixo 2 O sistema deve permitir inserir e remover palavras no dicionário de forma dinâmica 3 O sistema deve persistir o dicionário em arquivo texto 4 O sistema deve incluir operações de inserção busca e pesquisa em ordem Funcionalidades Esperadas O seu programa deverá Carregamento inicial do dicionário a partir de um arquivo txt Entrada do usuário a cada letra digitada mostrar sugestões com base nas palavras do dicionário Menu de interação simples via terminal ou interface básica Exemplo de uso Esperado Dicionário casa carro cachorro cadeira caneta mesa mala Entrada 1 Prefixo ca Saída esperada cachorro cadeira casa carro caneta Entrada 2 prefixo cas Saída esperada casa Ministério da Educação Instituto Federal de Goiás Campus Luziânia Departamento de Áreas Acadêmicas Estrutura de Dados II Entrega Códigofonte funcional desenvolvido na linguagem Java organizado e documentado Relatório técnico contendo o Explicação da lógica sobre as funcionalidades desenvolvidas o Prints dos testes e exemplos de uso o Reflexão sobre os desafios e decisões tomadas Critérios de Avaliação Serão considerados 3 aspectos para a nota final do trabalho o Funcionamento correto da Árvore AVL 30 o Funcionamento das funcionalidades autocompletar 30 o Estrutura organização e comentários no código 10 o Clareza e qualidade do relatório técnico 30 Prazos A data de entrega deste trabalho será 28052025 Observações Finais O trabalho deverá ser desenvolvido individualmente ou em duplas A presença de comentários no código ajuda na compreensão e será considerada na nota São anulados aqueles trabalhos nos quais forem detectados quaisquer tipos de cópias ou plágio não importa a origem Relatorio Tecnico Sistema de Autocompletar com Arvore AVL Savio 22 de maio de 2025 Sumario 1 Introducao 2 2 Objetivos 2 3 Metodologia 2 31 Estrutura de Dados 2 32 Funcionalidades Implementadas 2 4 Interface Grafica 2 5 Codigofonte Principal 3 6 Resultados 3 7 Conclusao 3 8 Referˆencias 4 1 Relatorio Tecnico Sistema de Autocompletar AVL 1 Introducao Este relatorio apresenta o desenvolvimento de um sistema de autocompletar baseado em uma arvore AVL utilizando a linguagem Java e a biblioteca grafica Swing O objetivo principal e permitir a insercao remocao busca por prefixo e exibicao ordenada de palavras armazenadas de forma balanceada em uma arvore binaria 2 Objetivos Implementar uma arvore AVL para armazenar palavras em ordem lexicografica Permitir a busca eficiente de sugestoes com base em prefixos autocompletar Criar uma interface grafica amigavel para o usuario interagir com o sistema Salvar e carregar as palavras de um arquivo externo 3 Metodologia O programa foi desenvolvido em Java utilizando a estrutura de dados AVL que e uma arvore binaria de busca balanceada A interface grafica foi construıda com Swing permi tindo entrada de dados sugestoes automaticas e visualizacao ordenada das palavras 31 Estrutura de Dados A arvore AVL e uma estrutura autobalanceada onde a diferenca entre as alturas das subarvores esquerda e direita de qualquer no nunca e superior a 1 Isso garante operacoes de insercao remocao e busca em tempo Olog n 32 Funcionalidades Implementadas Insercao de Palavras Insercao na arvore AVL com balanceamento Busca por Prefixo Pesquisa recursiva de palavras que comecem com determinado prefixo Remocao de Palavras Exclusao segura com rebalanceamento da arvore Exibicao em Ordem Alfabetica Percurso inorder da arvore Persistˆencia de Dados Leitura e escrita em arquivo texto dictionarytxt 4 Interface Grafica A interface foi desenvolvida com os seguintes componentes Campo de texto para entrada de prefixos Lista dinˆamica que mostra sugestoes conforme o texto digitado Botoes para adicionar remover e exibir palavras em ordem 2 Relatorio Tecnico Sistema de Autocompletar AVL Figura 1 Interface principal do sistema 5 Codigofonte Principal A seguir um trecho do codigo da classe principal que integra a arvore AVL com a interface Swing 1 inputFieldgetDocument addDocumentListener new DocumentListener 2 public void changedUpdateDocumentEvent e updateSuggestions 3 public void removeUpdateDocumentEvent e updateSuggestions 4 public void insertUpdateDocumentEvent e updateSuggestions 5 6 7 addButton addActionListener e addWord 8 removeButton addActionListener e removeWord 9 listAllButton addActionListener e showAllWords Listing 1 Trecho da interface grafica 6 Resultados O sistema apresentou os seguintes resultados Tempo de resposta rapido para sugestoes de palavras Ordenacao correta ao exibir todas as palavras Insercao e remocao mantiveram a arvore balanceada Arquivo de persistˆencia atualizado corretamente 7 Conclusao O sistema de autocompletar com arvore AVL atende as expectativas de desempenho e funcionalidade A estrutura AVL provou ser eficiente para armazenar e consultar palavras 3 Relatorio Tecnico Sistema de Autocompletar AVL mesmo com grande volume de dados A interface grafica oferece uma experiˆencia amigavel ao usuario 8 Referˆencias Cormen T H et al Algoritmos Teoria e Pratica Java API Documentation httpsdocsoraclecomjavase8docsapi Estruturas de Dados em Java Material didatico 4