“Estruturas de Dados” é uma disciplina que apresenta como organizar e manipular dados, sendo parte essencial na composição de programas e algoritmos.
Partes de um dado ou um dado inteiro, normalmente, é referenciado por uma variável. Por exemplo, o dado “idade” das pessoas em um programa pode estar associado a uma variável inteira, denominada IDADE. Em outras palavras, a IDADE é uma variável do tipo número inteiro.
A forma como os dados são organizados, manipulados e armazenados, além da forma como são processados, afetam o desempenho de um programa ou algoritmo.
DEFINIÇÃO
O estudo das Estruturas de Dados é muito importante quando falamos de programação e de qualquer curso na área da Tecnologia da Informação e das Engenharias.
Niklaus Wirth, o criador da linguagem Pascal, dizia que qualquer programa é o resultado da junção entre algoritmos e estruturas de dados.
Assim como os números podem ser representados em diferentes sistemas de numeração, os dados também podem ser armazenados em diferentes estruturas de dados.
Um desenvolvedor pode fazer uso de diferentes formas para armazenar os dados na memória de computador, nos discos e na nuvem para então serem processados.
Há diferentes tipos de estruturas de dados e cada tipo pode afetar o desempenho do algoritmo. O consumo de memória e o tempo de execução são parâmetros importantes na escolha da estrutura de dados adequada.
Por isso, o estudo das estruturas de dados tem por objetivo analisar diferentes formas de armazenamento de dados, verificando o desempenho de cada tipo de estrutura e a escolha do melhor algoritmo que se adequa ao problema a ser resolvido.
Vamos supor que você tenha um conjunto de dados com um determinado tamanho N que precisa ser processado. Saber escolher entre uma estrutura de dados A ou B para o armazenamento deste conjunto pode fazer com que a memória gaste mais ou menos memória.
Isso também pode acontecer em relação ao tempo de execução, que poderá variar de acordo com a estrutura escolhida.
Por isso, a escolha adequada da estrutura de dados deve ser feita considerando a complexidade do problema a ser resolvido, com a mesma quantidade de memória disponível, levando em conta, ainda, o tempo que se pode gastar para resolver determinado problema.
É muito importante determinar qual a melhor estrutura de dados a ser utilizada de acordo com cada tipo de problema a ser resolvido.
Para a representação das estruturas de dados, inicialmente, vamos desconsiderar as declarações específicas das linguagens de programação, procurando definições abstratas, de modo a não se preocupar com detalhes de implementação. É bom lembrar que certas estruturas de dados variam na forma como são declaradas de uma linguagem para outra.
Neste estudo, vamos utilizar os conceitos das estruturas de dados, independentemente das implementações específicas de cada linguagem de programação.
TIPOS
Em nossos estudos, consideramos a definição de cada estrutura e o desenvolvimento dos algoritmos e métodos para se operar com cada estrutura de dados.
Essas estruturas podem ser divididas em dois tipos de blocos, em relação à sua disposição na memória: