- Árvore Binária de Busca
- Árvore AVL
- Árvore Vermelho-Preta
- Entre em alguma pasta dentro do diretório "Arvores", exemplo:
cd Arvores/BST
- Compile para um executável com
gcc *.c -o nome_do_executavel
, exemplo:gcc *.c -o resultado
- Rode o programa com
./resultado
- Rode o executável passando o arquivo de entrada (teste.in) e redirecione o resultado para um arquivo de saída(resultado.out) com
./resultado < teste.in > resultado.out
- Compare o arquivo de sáida com o arquivo de gabarito (teste_esperado.out) que contém o resultado esperado para o arquivo de entrada usado antes, rode
diff teste_esperado.out resultado.out
- Algorítmo de Kruskal (implementado com a representação Matriz de Adjacência)
- Algorítmo de Prim (implementado com a representação Lista de Adjacência)
- Busca em Largura (implementado com a representação Matriz de Adjacência)
- Busca em Profundidade (implementado com a representação Lista de Adjacência)
- Entre em alguma pasta dentro do diretório "Grafos", exemplo:
cd Grafos/AlgoritmoDeKruskal
- Compile para um executável com
g++ *.cpp -o nome_do_executavel
, exemplo:g++ *.cpp -o resultado
- Rode o programa com
./resultado
Esse demo salva livros no disco e também é capaz de lê-los ao implementar uma lógica de indexação onde não é necessário salvar todo o arquivo dos livros na memória, invés disso, nós usamos uma estrutura de indexação. Nesse caso, uma Árvore AVL.
Cada nó da árvore armazena apenas o código do livro e seu índice do arquivo dos livros salvos, então estamos economizando muita memória ao armazenar apenas dois inteiros (o código e o índice do livro) como conteúdo da estrutura da árvore, no lugar de salvar toda as informações dos livros, o que se tornaria um problema, se tivéssemos, por exemplo, 1.000.000 de livros.
Quando precisamos ler um livro específico, apenas fazemos uma pesquisa na estrutura de indexação (Árvore AVL) pelo seu código, este nó também contém o índice daquele livro do arquivo de dados, quando o abrimos, já temos a exata posição do livro que queremos, então apenas carregamos ele na memória, não o arquivo de dados inteiro. É uma implementação eficiente de uso de memória.
- Entre no diretório "Arquivos" com
cd Arquivos
- Compile para um executável com
gcc *.c -o nome_do_executavel
, exemplo:gcc *.c -o resultado
- Rode o programa com
./resultado