Uma estrutura de dados dinâmica (DDS) se refere a uma organização ou coleção de dados na memória que tem a flexibilidade de aumentar ou diminuir de tamanho, permitindo que um programador controle exatamente quanta memória é utilizada. As estruturas de dados dinâmicas mudam de tamanho porque a memória não utilizada é alocada ou desalocada do heap, conforme necessário.
Estruturas de dados dinâmicas desempenham um papel fundamental em linguagens de programação como C, C ++ e Java porque fornecem ao programador a flexibilidade para ajustar o consumo de memória de programas de software.
Estruturas de dados dinâmicas vs. estruturas de dados estáticas
As estruturas de dados dinâmicas contrastam com as estruturas de dados estáticas (SDS), em que, neste último caso, o tamanho da estrutura é fixo. As estruturas de dados estáticas são ideais para armazenar um número fixo de itens de dados, mas não têm a flexibilidade da estrutura de dados dinâmica para consumir memória adicional se necessário ou liberar memória quando possível para maior eficiência.
Como resultado, quando o número de itens de dados não pode ser previsto com antecedência, uma estrutura de dados dinâmica deve ser usada. Uma desvantagem potencial de usar estruturas de dados dinâmicas, entretanto, é que, como a alocação de memória não é fixa, há a possibilidade de a estrutura estourar se exceder o limite máximo de memória permitido ou estourar se a estrutura de dados ficar vazia.
Para ajudar a evitar que esses problemas ocorram, o programador precisa adicionar controle para monitorar continuamente o tamanho e a localização dos itens de dados em uma estrutura de dados dinâmica.