Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
JAVA
Décima Aula
Alocação Dinâmica
Listas, pilhas e filas
Construção de classes
Listas, pilhas e filas
Listas
Pilhas
Filas
3
Prof. Rogério Albuquerque de Almeida
Estrutura de Dados
Estruturas de armazenamento
• Lista Seqüencial
• Lista encadeada
Exemplos de outras
estruturas
4
Prof. Rogério Albuquerque de Almeida
Lista encadeada
Uma lista encadeada consiste numa seqüência encadeada de elementos, em
geral chamados de nós da lista. A lista é representada por um ponteiro para o
primeiro elemento (ou nó). Do primeiro elemento, podemos alcançar o segundo
seguindo o encadeamento, e assim por diante. O último elemento da lista aponta
para NULL, sinalizando que não existe um próximo elemento.
http://www.lncc.br/~rogerio/ed/applets/Chap05/LinkList/LinkList.html
5
Prof. Rogério Albuquerque de Almeida
Lista encadeada
Principais Operações:
Inclusão de um elemento
Remoção de um elemento
Acesso a um elemento
Atualização de um valor
Exibir o conteúdo da lista
6
Prof. Rogério Albuquerque de Almeida
Lista encadeada
No slide seguinte é apresentado o
código fonte da implementação de um
programa que manipula uma lista
encadeada simples.
7
Prof. Rogério Albuquerque de Almeida
Lista encadeada - Estrutura de um nó
Pato 6
Nome Idade Prox
class No
{
public String nome;
public int idade;
public No prox;
// ----------------------------------------------------------
public No(String name, int id) // construtor
{
nome = name;
idade = id;
}
// ----------------------------------------------------------
public void mostraNo( )
{
System.out.print("{" + nome + ", " + idade + "} ");
}
} // fim da classe No 8
Prof. Rogério Albuquerque de Almeida
Lista encadeada - Estrutura da Lista
class Lista
{
private No prim; // referência ao primeiro nó da lista
public Lista( ) { // construtor
prim = null; // nenhum nó na lista, ainda
}
public boolean vazia( ) { // true se a lista está vazia.
return (prim==null);
}
public void incluiPrim(String name, int id) {
No novoNo = new No(name, id);
novoNo.prox = prim;
prim = novoNo;
}
public No deletePrim( ) {
No temp = prim;
prim = prim.prox;
return temp;
}
public void printLista( ) {
System.out.print("Lista: ");
No aux = prim;
while(aux != null) {
aux.mostraNo();
aux = aux.prox;
}
System.out.println("");
} 9
} //fim da classe Lista
Prof. Rogério Albuquerque de Almeida
Pilha
Permite acesso
apenas a um item
de dados: o último
item inserido.
Esta estrutura é também
conhecida como lista do tipo LIFO
(last in first out) o último nó que
entra é o primeiro que sai.
10
Prof. Rogério Albuquerque de Almeida
TOPO 98
85
56
Pilha 14
17
15
20
45
98 85 56 15
11
Prof. Rogério Albuquerque de Almeida
Exemplos de código fonte
Baixe no link abaixo os códigos-fonte da
implementação de programa que
manipulam os tipos de estruturas mais
elementares, usando encadeamento.
http://www.lncc.br/~rogerio/ed/exemplos/Chap05/
12
Prof. Rogério Albuquerque de Almeida
Fila
Permite acesso
apenas a um item
de dados: o último
item inserido.
Esta estrutura é também
conhecida como lista do tipo FIFO
(first in first out) o primeiro nó
que entra é o primeiro que sai.
13
Prof. Rogério Albuquerque de Almeida
Fila Início Fim
(Cabeça) (cauda)
(head) (tail)
Principais
Operações:
Incluir
Retirar
5 7 3 2 8 12
14
Prof. Rogério Albuquerque de Almeida
Fila
Baixe no link abaixo o código fonte da
implementação de um programa que
manipula uma fila usando encadeamento.
http://www.lncc.br/~rogerio/ed/exemplos/Chap05/linkQueue/linkQueue.java
15
Prof. Rogério Albuquerque de Almeida