View
214
Download
0
Category
Preview:
Citation preview
© 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
© 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) {...} }
© 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; }
© 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; }
Recommended