Anda di halaman 1dari 15

Programação Orientada a Objetos II

JAVA
Décima Aula

Prof. Rogério Albuquerque de 1


Almeida
Programação Orientada a Objeto II

 Introdução à Estruturas de Dados

 Alocação Dinâmica
 Listas, pilhas e filas

 Construção de classes
 Listas, pilhas e filas

Prof. Rogério Albuquerque de Almeida


Estrutura de Dados
Foram vistas no semestre passado as formas mais
simples de estruturas de dados, descritas a seguir:

 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.

Começaremos com um exemplo de uso de uma lista encadeada, demonstrando-a


com um applet. Essa abordagem dará a você uma idéia sobre o que faz este
tipo de estrutura.

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

Principais  Empilhar (Push)


Operações:  Desempilhar (Pop)

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