Trabalho Final de ED /

Filename Size Date modified Message
dicionarios
textos
49 B
251 B
3.1 KB
1.8 KB
6.0 KB
155 B
2.3 KB
234 B
3.7 KB
258 B
1.0 KB
3.4 KB
12.1 KB
1.0 KB
7.0 KB
1.0 KB
3.9 KB
465 B
4.3 KB
658 B
Trabalho Final de Estrutura de Dados (UFRGS, 2011/2)
- Adolfo Schneider
- Lucas Jose Kreutz Alves

-------------------------------------------------------------------------------
Objetivo:
    Dado um dicionario (somente palavras, sem definiушes), econtra erros 
  ortogrрficos em um arquivo texto.
  

Estruturas:
-Dicionрrio: AVL
-Texto: Pilha
-Erros: Lista Simplesmente Encadeada
-Palavra: Array


Justificativa da Escolha das Estruturas:
-Dicionрrio: Escolhemos utilizar AVL devido a sua rapidez para encontrar os
dados e altura reduzida em comparaусo a рrvores como ABP e Rubro-Negras.
-Texto: facilidade de fazer inserушes e de resgatar os items de sua estrutura.
Uma operaусo de POP, alжm de jр liberar a memзria ocupada, devolve o valor da
palavra.
-Erros: Pela simplicidade da estrutura e da possibilidade de termos um nЩmero
variado de itens, sendo o tamanho da memзria a Щnica limitaусo. Possibilidade
de ordenamento dos itens.
-Palavra: Pela otimizaусo da alocaусo da memзria, evitando a fragmentaусo dela.
Se torna uma estrutura mais rрpida de lidar, aumentando a velocidade da execuусo
do programa.


Arquivos de Entrada:
- Arquivo dicionрrio (extensсo .dic, codificaусo ANSI (Windows-1252);
- Arquivo texto (extesсo .txt, codificaусo ANSI (Windows-1252)).


Vantagens:
- Estrutura fрcil de ser compreendida, lзgica simples;
- Utiliza estruturas bрsicas (AVL, Arrays, LSE e PILHA);
- Nсo utiliza рrvores n-рrias;
- Algoritmos de inserусo e pesquisa simples;

Instruушes:
- Coloque os arquivos de dicionрrio na pasta dicionarios
- Coloque os arquivos de texto na pasta dicionarios
- Rode o programa

Modificaушes para a Etapa 2:
- Criado campo 'linha' na estrutura do texto para salvar a linha no qual a
palavra se encontrava no arquivo. O motivo dessa modificaусo ж que desse modo
a linha do qual a palavra foi lida fica registrada na pilha de palavras do texto;
- Criado campo 'linhas' na estrutura dos erros. ╔ uma LSE em que cada elemento
representa uma linha em que o erro se encontra. Utilizamos uma LSE para representar
as linhas pela sua facilidade de implementaусo, velocidade e pela possibilidade
de nсo haver limitaушes quanto ao nЩmero de linhas que podem ser inseridas.


-------------------------------------------------------------------------------
Observaушes:
- Os arquivos devem estar em ANSI (nсo UTF8, nem ISO8859-1,nem ....);
- Os caracateres com acentos nсo serсo impressos na tela corretamente em
terminais que nсo tenham codificaусo ISO8859-2 (a do prompt do Windows);
- Para exibir corretamente os acentos no Linux (testado no Ubuntu), mude a 
codificaусo do terminal para Europeu (ISO8859-2);
- Sabemos que utilizar uma Trie Tree ou uma B+ Tree seria mais eficiente para
armazenar o dicionрrio, mas a proposta da cadeira ж de utilizar estruturas
mais bрsicas;
- Foi utilizado o Code::Blocks como IDE (por isso o arquivo .CBP no cзdigo) com
o GCC como compilador. Acreditamos que rode em outras IDE's e compiladores sem 
problemas;
- Foi desenvolvido no Windows, com foco nesse sistema. Rodр-lo em outros sistemas
requer modificaушes no cзdigo.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.