Este repositório contém a implementação de vetores dinâmicos em C++, utilizando duas abordagens: alocação dinâmica de arrays e listas duplamente ligadas. O objetivo é comparar o desempenho dessas implementações em diferentes cenários, avaliando suas vantagens e desvantagens em termos de eficiência, uso de memória e complexidade de código.
O relatório detalhado da implementação e análise de desempenho está disponível no arquivo relatorio.pdf
. O relatório aborda os seguintes tópicos:
- Introdução aos vetores dinâmicos.
- Descrição das duas abordagens de implementação.
- Detalhes da implementação de cada classe, incluindo os métodos e suas complexidades.
- Análise comparativa do desempenho das duas implementações, com base em testes e resultados.
array_list.hpp
: Declaração da classearray_list
(implementação com array dinâmico).linked_list.hpp
: Declaração da classelinked_list
(implementação com lista duplamente ligada).gera_num.cpp
: Programa que gera um .txt com números aleatórios para os testes.test-pushfront-array-list-01.cpp
: Teste de inserção no início paraarray_list
.test-pushfront-linked-list-01.cpp
: Teste de inserção no início paralinked_list
.test-removeat-array-list-01.cpp
: Teste de remoção por índice paraarray_list
.test-removeat-linked-list-01.cpp
: Teste de remoção por índice paralinked_list
./push/e[1-5].txt
: Arquivos de entrada para os testes de inserção./remove_at/e[1-2].txt
: Arquivos de entrada para os testes de remoção.
1. Compilar o Gerador de Números:
g++ gera_num.cpp -o gera_num
2. Gerar Arquivos de Entrada:
./gera_num <qtd_números> nome_arquivo.txt
3. Compilar os Testes:
g++ <arquivo_de_teste>.cpp -o <nome_do_executavel>.exe
4. Executar os Testes:
./<nome_do_executavel>.exe < <arquivo_de_teste>.txt
# <arquivo_de_teste>.txt localizados em /push e /remove_at