Beruflich Dokumente
Kultur Dokumente
Introduo
O que uma Estrutura de Dados (ED)? Tipos de Dados? Estruturas de Dados? e Tipos Abstratos de Dados?
22/08/2011
Embora estes termos sejam parecidos, eles tm significados diferentes. Em linguagens de programao, os tipos de dados de uma varivel define o conjunto de valores que a varivel pode assumir. Por exemplo, uma varivel do tipo lgico pode assumir o valor verdadeiro ou falso.
22/08/2011 3
Uma declarao de varivel em uma linguagem de programao especifica: 1. O conjunto de valores que pode assumir. 2. O conjunto de operaes que podemos efetuar. 3. A quantidade de bytes que deve ser reservada para ela. 4. Como o dado representado por esses bytes deve ser interpretado (por exemplo, uma cadeia de valores pode ser interpretada como um inteiro ou real...).
22/08/2011 4
Ento, tipos de dados podem ser vistos como mtodos para interpretar o contedo da memria do computador. Mas podemos ver o conceito de Tipo de Dados de uma outra perspectiva: no em termos do que um computador pode fazer (interpretar os bits...) mas em termos do que os usurios desejam fazer (somar dois inteiros...)
22/08/2011 5
Este conceito de Tipo de Dado divorciado do hardware chamado Tipo Abstrato de Dado TAD. Estrutura de Dados um mtodo particular de se implementar um TAD. A implementao de um TAD escolhe uma ED para represent-lo. Cada ED construda dos tipos primitivos (inteiro, real, char,...) ou dos tipos compostos (array[vetor], registro,...) de uma linguagem de programao.
22/08/2011 6
No importa que tipo de dados estaremos trabalhando, a primeira operao a ser efetuada em um TAD a criao. Depois, podemos realizar incluses e remoes de dados. A operao que varre todos os dados armazenados num TAD o percurso, podendo tambm ser realizada uma busca por algum valor dentro da estrutura.
22/08/2011 7
Exemplos de TAD
Lineares: - Listas - Pilhas - Filas No Lineares: - rvores - Grafos
22/08/2011 8
Listas
So estruturas formadas por um conjunto de dados de forma a preservar a relao de ordem linear entre eles. Uma lista composta por ns, os quais podem conter, cada um deles, um dado primitivo ou composto. Dado primitivo (simples): Manipula somente um valor. Dado composto (estruturado): Manipula vrios valores ao mesmo tempo.
22/08/2011
Representao
L1 L2 L3
...
Ln-1
Ln
22/08/2011
Exemplos de Listas
Lista Telefnica; Lista de clientes de uma agncia bancria; Lista de setores de disco a serem acessados por um sistema operacional; Lista de pacotes a serem transmitidos em um computador em uma rede.
22/08/2011
11
22/08/2011
Formas de representao
Seqencial:
Explora a seqencialidade da memria do computador, de tal forma que os ns de uma lista sejam armazenados em endereos seqenciais, ou igualmente distanciados um do outro. Pode ser representado por um vetor na memria principal ou um arquivo seqencial em disco.
L
pato
1
gato
2
cobra
3
anta
4
rato
5
... MAX
13
22/08/2011
Formas de representao
Encadeada:
Esta estrutura tida como uma seqncia de elementos encadeados por ponteiros, ou seja, cada elemento deve conter, alm do dado propriamente dito, uma referncia para o prximo elemento da lista.
Ex: L = pato, gato, cobra, anta, rato
pato
22/08/2011
gato
cobra
anta
rato
14
Lista Seqencial
Uma lista representada de forma seqencial um conjunto de registros onde esto estabelecidas regras de precedncia entre seus elementos. O sucessor de um elemento ocupa posio fsica subseqente. A implementao de operaes pode ser feita utilizando array e registro, associando o elemento a(i) com o ndice i (mapeamento seqencial).
22/08/2011 15
Caractersticas
Os elementos na lista esto armazenados fisicamente em posies consecutivas; A insero de um elemento na posio a(i) causa o deslocamento a direita do elemento de a(i) ao ltimo; A eliminao do elemento a(i) requer o deslocamento esquerda do a(i+1) ao ltimo;
22/08/2011
16
Mas, absolutamente, uma lista seqencial ou vazia ou pode ser escrita como (a(1), a(2), a(3), ... a(n)) onde a(i) so tomos de um mesmo conjunto A. Alm disso, a(1) o primeiro elemento, a(i) precede a(i+1), e a(n) o ltimo elemento.
22/08/2011
17
22/08/2011
Lista de informaes de produtos de uma empresa TipoNo = registro Nome: string; Codigo: inteiro; Preo: real; fim registro; Const N=100; TipoLista = array [1 .. N] de TipoNo;
22/08/2011 19
Consultar n
22/08/2011
20
22/08/2011
21
Praticando
1 X 10
1.
2
15
3
20
4
25
5
30
6
35
10
De acordo com a lista acima, responda: a) Qual o tamanho do vetor? b) Qual informao est na primeira posio da lista? c) Qual informao est na ltima posio da lista? d) Em qual posio do vetor est a informao 25? e) Quantas informaes ainda podem ser gravadas no vetor? f) Faa o esboo da lista para insero da informao 23 no final da lista. g) Faa o esboo da lista para a insero da informao 60 no incio da lista. h) Faa o esboo da lista para a insero da informao 33 na posio 4 do vetor. i) Faa o esboo da lista para remoo da informao na posio 22 22/08/2011 2 do vetor.
Praticando
2) Faa a ED para inserir nmero inteiros em um array de 100 posies. 3) Faa a ED para inserir nmeros reais em um array de 250 posies. 4) Faa a ED para o cadastro de clientes de uma empresa, sendo um vetor de 5000 elementos contendo o registro das seguintes informaes nome, endereo, cidade, telefone, cpf.
22/08/2011 23
Lista Encadeada
22/08/2011
24
22/08/2011
25
Declarao de Tipos
TipoPtN = ^TipoN; TipoN = registro Info : TipoInfoN; Elo : TipoPtN fim;
22/08/2011
26
Inicializao de LL encadeada
22/08/2011
27
22/08/2011
28
22/08/2011
29
22/08/2011
30
22/08/2011
31
22/08/2011
32
22/08/2011
33
22/08/2011
34
22/08/2011
35
22/08/2011
36
22/08/2011
37
22/08/2011
38
Praticando
245 350 451 615 978