Os algoritmos estão dipostos por tópicos, matérial para revisão de estudos e consulta rápida, sobre estrutura de dados.
Resolução de exercícios propostos, Livro: Estrutura de Dados com Algoritmos e C - (Marcos Aurelio Pcker Laureano).
Vetores 1:
https://github.com/PriciLeite/Codigo_Estrutura_de_dados_C/blob/main/estrutura_de_dados_vetores.c
Registros 1:
https://github.com/PriciLeite/Codigo_Estrutura_de_dados_C/blob/main/estrutura_de_dados_Registros_Heterogenio.c
Registros 2:
https://github.com/PriciLeite/Codigo_Estrutura_de_dados_C/blob/main/estrutua_de_dados_Registros_Heterogeneos02.c
Como se dá a alocação dos dados e como manipulalos: Por VALUE TYPE (Struct) ou REFERENCE TYPE (Heap) com ponteiros. Por meio de alocações Estáticas(Alocação automática pelo compilador) e Dinâmicas(Alocação dinamicamente programada). Os ponteiros por sua vez irão referênciar endereços de memória de alocações na Stack.(Havendo alteração da stack, haverá alteração de valor na impressão de referência, mantém-se o endereço referênciado inalterado). Vetores, arrays, matrizes e classes em OOP (Orientado a objetos) configuram alocação na memória Heap.
As funções para alocação Dinâmica são: Malloc / Calloc / Realloc / Free.
MALLOC: Alocação em periodo de EXCUÇÃO do programa por meio de VETORES que não tinha seus valores previamente definidos. Por isso dito em EXECUÇÃO. Após definido a quantidade de ÍNDICES DO VETOR foi possível atribuir para cada POSIÇÃO um valor para ser inserido na Heap.
REALLOC: Realocação do tamanho desses VETORES após primeira alocação e posterior inserção de novos índices de reserva para o vetor.
CALLOC: PONTEIRO -> PONTEIRO. Alocação DINÂMICA na declaração de uma Matriz de duas dimensões Matriz[][] exigindo dois ponteiros.
p* -> i linhas p[K]* -> J colunas
onde,
&p[k][x] -> Retorna variação de posição de linhas e colunas.
Inicialização de p* em Main(), chama-se p[k]* -> p*