estruturas de dados

O modo como percepcionamos aquilo que nos rodeia e as alternativas que formulamos para aprender mais conhecimentos são extremamente influenciados pela linguagem, de igual modo, num contexto especifico de um problema temos que analisar a linguagem sobre o qual o mesmo está inserido de modo a adequarmos a resolução do problema mediante o paradigma existente e respeitarmos as convenções.

Em computação temos pois que encontrar a linguagem que mais se adequa ao nosso problema e às nossas necessidade, uma linguagem de programação é uma notação para escrever problemas. Todavia, se procuramos uma resposta fiável para o nosso problema, não temos apenas que escolher por esta ou aquela linguagem, temos também que analisar os dados e estrutura-los da forma mais eficiente possível, com vista alcançarmos o algoritmo ideal. Estruturar dados não é mais do que armazenar e organizar dados para serem usados de uma forma eficiente, manipulados por algoritmos. As estruturas de dados definem a organização, métodos de acesso e opções de processamento para a informação ser manipulada pelo programa.

São várias as estruturas de dados, entre as mais clássicas destaco:

[ vectores (array) ] estruturas de dados estáticas de dimensão fixa e finita que armazenam elementos do mesmo tipo;

[ listas (list) ] sequencia de elementos do mesmo tipo onde a ordem de inserção é relevante;

[ pilhas (stack) ] estrutura de informação linear, a informação é armazenada de modo a aceder ao ultimo elemento inserido (LIFO - last in frist out);

[ filas (queue) ] semelhantes às pilhas contudo a informação é armazenada de forma a aceder somente ao primeiro elemento inserido (FIFO - frist in frist out);

[ conjuntos (set) ] colecção sem repetições de objectos de um determinado universo/tipo. estes objectos são designados por membros ou elementos do conjunto;

[ árvores (tree) ] estruturas de dados não lineares. A arvore pode ser vazia (estrutura vazia) ou ter um nó principal (raiz/root) e um numero finito de subarvores;

[ árvores binárias (binary tree) ] são tipos de árvores com grau 2, ou seja, contém apenas duas sub-árvores; a sub-arvore da esquerda e a sub-arvore da direita;

[ grafos ] Os grafos são uma forma de modelar os problemas. Um grafo G=(V,E) consiste em cum conjunto V de vértices e um conjunto E de pares de vértices ou arestas. Grafos podem ser utilizados para modelar uma variedade de estruturas e relações;

[ tabelas ] são estruturas de dados que armazenam um conjunto finito de registos(records). Cada registo é constituído por um par de valores, a chave(identifica univocamente o elemento) um elemento (de um dado tipo que contém a informação que se quer guardar.



“The art of programming is the art of organizing complexity,of mastering multitude and avoiding its bastard chaos” - E. Dijkstra