O estudo sobre estruturas de dados é algo muito interessante para todos os que gostam de programar ou de procurar boas soluções para resolver problemas computacionais. Mas não é só no meio digital que esses estudos são aplicados. Filas de banco, organogramas, e produtos empilhados em uma prateleira de um supermercado são exemplos de estruturas que possuem regras para que você possa interagir para resolver um problema real.
Podemos fazer um comparativo bem simples entre um caixa de um banco e um processador de um computador. Vejam que, no banco não há caixas suficientes para atender prontamente a todos os que chegam para serem atendidos. Da mesma forma ocorre no computador. Internamente há muitas tarefas a serem realizadas e cada tarefa deve esperar em uma fila para que possa utilizar o processador. A diferença maior está na velocidade em elas são atendidas.
Observe o funcionamento geral de uma fila: chegue, espere no final da fila até você ser atendido. Esse mecanismo resolve o problema de poucos caixas para atender um número grande de clientes no banco. Agora veja uma pilha: coloque item por item, um sobre o outro. Quando for retirar, vá tirando item por item, mas sempre os de cima. Se puxar qualquer item que não seja o de cima, a pilha pode desabar. É com esse propósito que as estruturas de dados são usadas para resolver problemas do mundo real, no meio computacional.
“Na Ciência da computação, uma estrutura de dados é um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados eficientemente.” [1,2,3] Além disso é usado para estudar “os diversos mecanismos de organização de dados para atender aos diferentes requisitos de processamento”[4], ou seja, “são formas genéricas de se estruturar informação de modo a serem registradas e processadas pelo computador e só adquirem significado quando associadas a um conjunto de operações, que visam, de um modo geral, manipulá-las (algoritmos).” [5]
Bom, o que você deve ter entendido (eu acho) nesse paragrafo anterior é que as estruturas de dados são formas bem definidas de organizar a informação em um computador. Além disso, essas estruturas possuem formas de acesso para que você possa manipular a informação dentro da estrutura. Quando uma pessoa constrói uma estrutura, na verdade ele está definindo meios para que você possa utilizá-la, ou seja, a API da estrutura de dados.
Além desses conceitos, outros conceitos que são relativos à este são os tipos de dados e os tipos abstratos de dados, que podem, de uma maneira geral, se referir a mesma coisa, mas possuem definições e conceitos bem diferentes.
Referencias
- Paul E. Black (ed.), Data structure. Dictionary of Algorithms and Data Structures. U.S. National Institute of Standards and Technology, 2004. Versão online .
- Data structure. Encyclopædia Britannica (2009) Online
- http://pt.wikipedia.org/wiki/Estrutura_de_dados
- http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node10.html
- http://www.univasf.edu.br/~marcelo.linder/arquivos_ed1/aulas/aula1.pdf