Você está na página 1de 3

Universidade Federal do Rio Grande do Sul

TRABALHO FINAL ESTRUTURA DE DADOS

Justificativa das estruturas utilizadas

Nomes: Filipe Souza, Lucas Ronchetti Cartes: 207270, 208004

Organizao Global do Trabalho: O trabalho foi organizado em duas estruturas principais que, combinadas, visam garantir o melhor desempenho da aplicao. As explicaes referentes ao uso dessas aplicaes sero dadas com exemplos e justificativas do porqu utiliz-las. Primeiramente, para o carregamento do dicionrio, foi utilizada uma rvore AVL. Para o armazenamento dos erros mais frequentes, foi utilizada uma estrutura de lista. As duas justas, portanto, constituem a organizao global do trabalho.

Carregamento do dicionrio: A estrutura utilizada foi uma rvore AVL. A escolha foi feita pois ela garantiria maior agilidade que em uma lista ou em uma rvore ABP em relao s pesquisas. Logo, seu principal motivo organizar melhor os dados facilitando a pesquisa que seria feita posteriormente. Obiamente, h limitaes na insero, mas que so muito compensadas nas pesquisas, pois agilizam muito o processo. Tambm vale destacar que ela no foi separada em letras. Por exemplo: no temos uma rvore s para a letra a, outra s para a letra b, outra s para a letra z. Isso exigiria que ficssemos testando a cada vez se deveramos ou no criar uma nova rvore. Portanto, foi escolhida uma AVL que carrega todas as palavras diretamente, sem fragmentaes. Isso agiliza o processo de insero e tambm mais facilmente visualizado por um outro programador, visto que todo o dicionrio est na mesma rvore, facilitando a compreenso do cdigo sem demais fragmentaes ou encadeamentos entre as rvores. Enfim, isso tornaria o cdigo menos compreensvel.

2)Estrutura para pesquisa das palavras incorretas: 2.1) Buscas: O principal destaque das pesquisas est no fato de a rvore no ser SPLAY. Por mais que os erros sejam frequentes e isso induza a utilizao de uma splay, essa ltima no foi utilizada pois o enunciado do trabalho evidencia que mais de um texto poder ser carregado para o mesmo dicionrio e que o dicionrio s ser carregado uma nica vez. Logo, no h vantagem em ter uma SPLAY se mudaremos o texto e, portanto, o dicionrio. Isso acarretaria na desorganizao do dicionrio, que por sua vez demoraria cada vez mais tempo em suas buscas, pois por exemplo, um erro frequente no texto um, teria muitas chances de no ser o mesmo erro frequente no texto dois.

2.2) Armazenamento: Para o armazenamento das palavras incorretas, utilizamos uma lista simplesmente encadeada (LSE). H, no algoritmo, testes para ver se apenas necessrio incrementar a frequencia de um erro (palavra j encontrada na lista) ou inserir uma nova palavra incorreta lista (caso ela ainda no tenha sido inserida). Aqui evidenciasse mais uma vez o porqu de uma SPLAY no ser to til e a preferncia, portanto, por uma AVL, j que as palavras podem ser verificadas pela lista. Como o enunciado exige, criamos mais duas funes para organizar as palavras em ordem de frequncia e, depois, em ordem alfabtica para aquelas que possuem a mesma frequncia. bviamente, a escolha de listas para o armazenamento muito mais simples e rpida, j que no so necessrias operaes complexas e as buscas so relativamente rpidas. Alm disso, listas so mais intuitivas ao se ler o cdigo fonte, facilitando a compreenso.

Você também pode gostar