Você está na página 1de 15
Programação Orientada a Objetos II JAVA Décima Aula Prof. Rogério Albuquerque de Almeida 1

Programação Orientada a Objetos II JAVA

Décima Aula

Programação Orientada a Objeto II  Introdução à Estruturas de Dados  Alocação Dinâmica 

Programação Orientada a Objeto II

Programação Orientada a Objeto II  Introdução à Estruturas de Dados  Alocação Dinâmica  Listas,

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

2

Estrutura de Dados

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

 Listas
 Listas
 Pilhas
 Pilhas
 Filas
 Filas

3

Prof. Rogério Albuquerque de Almeida

Estrutura de Dados

Estruturas de armazenamento

Lista Seqüencial

Lista encadeada

de armazenamento • Lista Seqüencial • Lista encadeada Exemplos de outras estruturas Prof. Rogério Albuquerque
de armazenamento • Lista Seqüencial • Lista encadeada Exemplos de outras estruturas Prof. Rogério Albuquerque

Exemplos de outras

estruturas

Prof. Rogério Albuquerque de Almeida

4
4

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.

para NULL, sinalizando que não existe um próximo elemento. Começaremos com um exemplo de uso de

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.

Prof. Rogério Albuquerque de Almeida

5

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

Prof. Rogério Albuquerque de Almeida

6

Lista encadeada

No slide seguinte é apresentado o

código fonte da implementação de um programa que manipula uma lista

encadeada simples.

Prof. Rogério Albuquerque de Almeida

7

Lista encadeada - Estrutura de um nó
Lista encadeada - Estrutura de um nó
Pato 6 Nome Idade Prox
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

Prof. Rogério Albuquerque de Almeida

8

Lista encadeada - Estrutura da Lista
Lista encadeada - Estrutura da Lista

class Lista

{

private No prim;

public Lista( ) {

prim = null;

// referência ao primeiro nó da lista // construtor

// nenhum nó na lista, ainda

}

public boolean vazia( ) { return (prim==null);

}

public void incluiPrim(String name, int id) {

// true se a lista está vazia.

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("");

}

} //fim da classe Lista

Prof. Rogério Albuquerque de Almeida

9

Pilha

Pilha Prof. Rogério Albuquerque de Almeida Permite acesso apenas a um item de dados: o último

Prof. Rogério Albuquerque de Almeida

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

Pilha
Pilha

Principais

Operações:

TOPO 98 85 56 14 17 15 20 45
TOPO
98
85
56
14
17
15
20
45

Empilhar (Push)

Desempilhar (Pop)

98 85 56 15
98
85
56
15

11

Prof. Rogério Albuquerque de Almeida

Exemplos de código fonte
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/

Prof. Rogério Albuquerque de Almeida

12

Fila

Fila Prof. Rogério Albuquerque de Almeida Permite acesso apenas a um item de dados: o último

Prof. Rogério Albuquerque de Almeida

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

Fila
Fila

Principais

Operações:

Incluir

Retirar

Início

(Cabeça)

(head)

Fim

(cauda)

(tail)

Retirar Início (Cabeça) (head) Fim (cauda) (tail) 5 7 3 2 8 12 Prof. Rogério Albuquerque
5 7 3 2 8 12
5
7
3
2
8
12

Prof. Rogério Albuquerque de Almeida

14

Fila

Baixe no link abaixo o código fonte da

implementação de um programa que manipula uma fila usando encadeamento.

Prof. Rogério Albuquerque de Almeida

15