iodesign_portfolio2
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Grafos e Árvores 429<br />
incluindo os usados na RG, usa o sistema de códigos ASCII para converter caracteres em forma<br />
binária, segundo o qual cada caractere necessita de 1 byte (8 bits) de armazenagem. Como<br />
cada número diferente de peça contém 9 caracteres, o arquivo de peças da RG é de aproximadamente<br />
9 3 5 3 10 8 bytes, ou 4,5 Gb.<br />
Pergunta:<br />
Como comprimir esse arquivo de número de peças de modo a usar menos espaço de<br />
armazenamento?<br />
Uma resposta a essa pergunta envolve a utilização de uma estrutura de árvores binárias. Uma<br />
árvore é uma representação visual de dados e conexões entre eles. É um caso especial<br />
de uma estrutura mais geral chamada grafo. Grafos ou árvores podem representar um<br />
número surpreendente de situações reais ― organogramas, mapas rodoviários, redes<br />
de transporte e comunicação, e assim por diante. Mais tarde veremos outros usos de<br />
grafos e árvores para representar redes lógicas, máquinas de estado finito e derivações<br />
de linguagens formais.<br />
A teoria dos grafos é um tópico extenso. As Seções 6.1 e 6.2 apresentam parte da terminologia<br />
associada a grafos e árvores, e alguns resultados elementares sobre essas estruturas.<br />
Para representar um grafo ou árvore na memória do computador, os dados precisam<br />
ser arrumados de forma a preservar toda a informação contida na representação visual.<br />
São discutidas diversas abordagens para a representação de grafos e árvores dentro de um<br />
computador.<br />
Árvores de decisão são representações gráficas das atividades de certos tipos de algoritmos.<br />
Elas são apresentadas e usadas, na Seção 6.3, para encontrar cotas inferiores para<br />
o comportamento, no pior caso, de algoritmos de busca e ordenação. Na Seção 6.4 é dado<br />
um algoritmo para a construção de árvores binárias que permitem a compressão dos dados<br />
em arquivos grandes.<br />
SEÇÃO 6.1 GRAFOS E SUAS REPRESENTAÇÕES<br />
Definições de um Grafo<br />
Um modo de passar a hora em uma viagem de avião é olhar os panfletos nos bolsos de<br />
assento. Esse material quase sempre inclui um mapa das rotas da companhia proprietária<br />
do avião, como na Figura 6.1. Toda essa informação sobre rotas poderia ser expressa em<br />
um parágrafo; por exemplo, existe uma rota direta entre Chicago e Nashville, mas não<br />
existe uma rota direta entre Nashville e St. Louis. No entanto, esse parágrafo seria bastante<br />
longo e complicado, e não seríamos capazes de assimilar a informação tão rápida<br />
e claramente quanto a partir do mapa. Existem muitos casos em que “uma imagem vale<br />
mais de mil palavras”.<br />
San Francisco<br />
Chicago<br />
Denver<br />
St. Louis<br />
Nashville<br />
Phoenix<br />
Albuquerque<br />
Dallas<br />
Miami<br />
Los Angeles<br />
Figura 6.1