4
© Ricardo Massa e Sérgio Soares 1 Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669 Introdução a Estruturas de Dados: Lista, Fila, Pilha e Árvore AULA Extra while(b) { p();} pode ser implementado por um método recursivo m_rec da seguinte forma: public static void m_rec() { if(b) { p(); m_rec(); } } 5 3 9 8 5 9 cabeça cauda

Graduação em Ciência da Computação - CIn/UFPE - Introdução ...if669/material/pdfsAte2015.2/EXTRA-Estruturas... · © Ricardo Massa e Sérgio Soares 2 Graduação em Ciência

Embed Size (px)

Citation preview

Page 1: Graduação em Ciência da Computação - CIn/UFPE - Introdução ...if669/material/pdfsAte2015.2/EXTRA-Estruturas... · © Ricardo Massa e Sérgio Soares 2 Graduação em Ciência

© Ricardo Massa e Sérgio Soares 1

Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669

Introdução a Estruturas de Dados: Lista, Fila,

Pilha e Árvore

AULA Extra

while(b) { p();}

pode ser implementado por um método recursivo m_rec da seguinte forma:

public static void m_rec() { if(b) { p(); m_rec(); } }

5 3 9 8 5 9

cabeça cauda

Page 2: Graduação em Ciência da Computação - CIn/UFPE - Introdução ...if669/material/pdfsAte2015.2/EXTRA-Estruturas... · © Ricardo Massa e Sérgio Soares 2 Graduação em Ciência

© Ricardo Massa e Sérgio Soares 2

Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669

5 3 9 8 5 9

inserir

remover

5 3 5 9

inserir remover

topo

raiz

folha

folha folha

ramo

5

3 5

9 9

1 1

cabeça

3 1

9 1

5 1

9 n

n = null

public class ListaInt { private int dado; private ListaInt proximo; public ListaInt (int valor) { ... ... } public void inserir(int valor) {...} public void remover(int valor) {...} }

Page 3: Graduação em Ciência da Computação - CIn/UFPE - Introdução ...if669/material/pdfsAte2015.2/EXTRA-Estruturas... · © Ricardo Massa e Sérgio Soares 2 Graduação em Ciência

© Ricardo Massa e Sérgio Soares 3

Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669

public class ListaInt { private int dado; private ListaInt proximo; public ListaInt (int valor) { this.dado = valor; this.proximo = null; } public void inserir(int valor) {...} public void remover(int valor) {...} }

public class ListaInt { private int dado; private ListaInt proximo; public ListaInt (int valor) {...} public void inserir(int valor) { if (this.proximo == null) { this.proximo = new ListaInt(valor); } else { this.proximo.inserir(valor); } } public void remover(int valor) {...} }

public class ListaInt { private int dado; private ListaInt proximo; public ListaInt (int valor) {...} public void inserir(int valor) {...} public void remover(int valor) throws X { if (this.dado == valor) { this.dado = this.proximo.dado; this.proximo = this.proximo.proximo; } else if (this.proximo != null) { this.proximo.remover(valor); } else { throw new X(); } } }

null null

creditar

debitar

Número Saldo

”763-0" 188,00

creditar

debitar

Número Saldo

"123-x" 374,78

creditar

debitar

Número Saldo

”761-7" 17,20

public class ListaContas { private Conta conta; private ListaContas prox;

public ListaContas() { . this.conta = null; this.prox = null; }

Page 4: Graduação em Ciência da Computação - CIn/UFPE - Introdução ...if669/material/pdfsAte2015.2/EXTRA-Estruturas... · © Ricardo Massa e Sérgio Soares 2 Graduação em Ciência

© Ricardo Massa e Sérgio Soares 4

Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação - IF669

public void inserir (Conta conta) { if (this.conta == null) { this.conta = conta; this.prox = new ListaContas(); } else { this.prox.inserir(conta); } }

public void remover(Conta c) throws CNEException { if (this.conta != null) { if (this.conta.equals(c)) { this.conta = this.prox.conta; this.prox = this.prox.prox; } else { this.prox.remover(c); } } else { throw new CNEException(); } }

public Conta procurar (String numero) throws CNEException { Conta resposta = null; if (this.conta != null) { if (this.conta.getNumero().equals(numero)) { resposta = this.conta; } else { resposta = this.prox.procurar(numero); } } else { throw new CNEException(); } return resposta; }