Este projeto implementa um sistema de matriz esparsa que representa dados como caracteres numa grelha 2D. O sistema armazena de forma eficiente apenas as células não vazias numa estrutura de lista ligada.
- Implementação de Matriz Esparsa: Utiliza listas ligadas para armazenar eficientemente células não vazias da matriz
- Inserção de Caracteres: Adiciona caracteres em coordenadas específicas na matriz
- Remoção de Caracteres: Substitui caracteres por "." em posições específicas ou em todas as ocorrências
- Cálculo de Interferência: Calcula pontos de interferência entre pares do mesmo caracter
- Entrada por Ficheiro: Carrega dados da matriz a partir de ficheiros de entrada
O projeto está organizado em vários módulos:
input.c/h: Gere a criação da matriz, gestão de nós e carregamento de ficheirosinsert.c/h: Funções para inserir caracteres em posições específicasremove.c/h: Funções para substituir caracteres por "."calculate.c/h: Implementa o algoritmo de cálculo das coordenadas de interferênciamatrix.h: Define funções para exibição e processamento da matrizmain.c: Demonstração da funcionalidade do sistema
- Crie um ficheiro de entrada com os dados da matriz (ver
input.txtpara o formato) - Compile o projeto:
gcc -o main *.c - Execute o programa:
./main
Ou execute o comando: gcc -o build/main src/calculate.c src/input.c src/insert.c src/remove.c src/graph.c src/matrix.c main.c -Iinclude && ./build/main
O programa lê uma matriz a partir de input.txt, onde cada caracter representa dados em coordenadas específicas. Em seguida, processa pares do mesmo caracter para calcular pontos de interferência, que são marcados com caracteres #. O programa também pode remover caracteres e adicionar novos em posições específicas.
Afonso Corte-Real (a31500@alunos.ipca.pt)