Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
Definição
Notação Assintótica
Lista
Pilha
Fila
Árvore
Árvore Binária
Árvore Binária Balanceada
“Se clamares por entendimento, e por
inteligência alçares a tua voz, Se como a
prata a buscares e como a tesouros
escondidos a procurares, Então entenderás
os desígnios do Senhor, e acharás o
conhecimento de Deus. Porque o Senhor dá
a sabedoria: da sua boca vem o
conhecimento e o entendimento.”
Provérbios 2:3-6
Introdução
Esta apostila é uma breve síntese do conteúdo compreendido como Estrutura de Dados,
ela de forma alguma almeja alcançar a totalidade do conteúdo existente nesta área da Computação,
mas sim, ser um guia sucinto do conteúdo da disciplina.
A palavra “computação” exerce um impacto diferente dependendo da pessoa a que a
dirigimos. A reação parece ser proporcional ao nível de conhecimento que o receptor possui sobre o
assunto. Muitos reagem com admiração, espanto ou mesmo aversão. Outros talvez, com maior
conhecimento na área compreendam esta palavra como sendo intimamente ligada a programas que
“comandam” computadores, máquina. Um especialista talvez associe esta palavra a “dados”
armazenados em um dispositivo físico. Devemos entender apesar das várias formas existentes de o
fazê-lo, que computadores servem para armazenar informações e programas servem para manipulá-
los. Um exemplo clássico da importância da estruturação é o do catálogo telefônico. Devido à
ordenação alfabética, é razoavelmente simples e rápido o acesso a um número de telefone de um
determinado assinante. Não se poderia dizer o mesmo se não tivéssemos ordem alguma. Agora, o
trabalho de estruturar uma massa enorme de informação, como é o caso dos assinantes e seus
números de telefone em uma cidade grande, é certamente enorme. Vale a pena fazê-la porque o
catálogo telefônico é consultado muitas vezes. Isto é exemplo de um fenômeno freqüente em
computação: pré-computar uma informação que será usada com muita freqüência.
Um fichário organizado alfabeticamente é outro exemplo interessante de estruturação.
Tomando o cuidado de respeitar a ordem ao inserir novas fichas. Temos uma espécie de catálogo
telefônico dinâmico: as alterações preservam as propriedades estruturais que facilitam o acesso.
A Estrutura de Dados procura prover mecanismos para que os softwares possam de
forma otimizada manipular grandes massas de dados.
Definição
Estruturas de Dados
Organização de Arquivos
Dados
Tipos de Dados
Os tipos de dados podem ser: Primitivos ou Estruturados, sendo que os estruturados, são chamados
de Complexos.
Tipos Primitivos
Os tipos de dados estruturados são aqueles obtidos a partir dos dados primitivos. Exemplos:
Estruturas Indexadas
Neste exemplo podemos notar que a ligação entre cada elemento é dada a partir da existência de um
índice de posições no vetor.
Declaração
V: vetor[0...n] de inteiros
int[] V = new int[n];
Atribuição
V[0] ç valor
V[0] = valor;
Acesso
valor ç V[0]
valor = V[0];
Características
Simples de implementar.
Espaço contínuo da memória com tamanho n.
Possui tamanho pré-determinado.
Limitação: quantidade de elementos que o conjunto irá suportar.
Estruturas Dinâmicas
É difícil comparar a eficiência de dois algoritmos a não ser que os experimentos tenham
sido feitos com o mesmo hardware e software;
Pode ser feita através do estudo de uma descrição em alto nível do algoritmo.
Esta metodologia objetiva associar a cada algoritmo uma função f(n) que caracteriza o
tempo de execução do algoritmo com uma função do tamanho n da entrada;
Exemplo:
Para que esta análise possa ser possível não é necessário implementar um programa,
tarefa a qual pode demandar várias horas ou dias para que possa ser possível, basta elaborar um
algoritmo.
Expressões
declarações de métodos
estruturas de decisão
estruturas de repetição
indexação de arranjos
chamadas de métodos
retorno de métodos
Exemplo:
Algoritmo maiorElemento(V, n)
maior ← V[0]
retorna maior
Definimos um conjunto de operações primitivas de alto nível que são independentes da
linguagem de programação usada e podem ser identificadas no pseudocódigo:
chamadas de métodos
operações aritméticas
acesso a um arranjo
retorno de um método
Exemplo: