06.03.2017 Views

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!