domingo, 12 de setembro de 2010

Árvores para que te quero?!

Atualmente estou lendo o livro "Data Structures And Algorithms" (que pode ser obtido de graça e legalmente aqui).

Meu treinamento formal nestes assuntos foi muito insuficiente e como estas disciplinas são a base de todo o software eu achei que seria muito bom aprender sobre isso.

Estruturas de dados em forma de árvores não são muito frequentes no desenvolvimento de software web usando bancos de dados relacionais. A não ser naqueles casos onde por exemplo você tem categorias que possuem subcategorias e estas subcategorias podem possuir suas próprias subcategorias, ou no caso de menus e submenus de vários níveis. Uma das causas disso é a própria arquitetura dos bancos de dados relacionais, que não foi pensada para tratar estes casos. Como escrever uma consulta sql que retorne uma categoria e também todas suas subcategorias não importando a quantidade e nem o aninhamento das subcategorias?

É claro que as pessoas criaram soluções que permitem armazendar e recuperar informações estruturadas como árvores em bancos relacionais, já vi que existem soluções no Oracle e Postgre que permitem tranquilamente escrever a consulta sql citada acima.

No intuito de treinar e aprender mais sobre Árvores Binárias (com ajuda do livro "Data Structures And Algorithms") eu escrevi um pouco de código (PHP) que talvez possa ajudar outras pessoas também interessadas em aprender sobre este tipo de estrutura de dados. O código é bem simples e apenas permite a inserção e recupreação dos nós de uma árvore. Também imprime esta árvore na saída padrão.

Download Código.

Nenhum comentário:

Postar um comentário