SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
RECURSIVIDADE
Departamento de Engenharia de Computação
Algoritmos e Estruturas de Dados
07/12/2016
1
AGENDA
Introdução
Exemplo: Fatorial
Controle de Chamada e Retorno de Rotinas Recursivas
Iteração X Recursão
Exemplo: Fatorial
Recursão de Cauda
Recursividade em Listas, Pilhas e Filas
07/12/2016
2
INTRODUÇÃO
Uma rotina (procedimento ou função) que chama a si
mesma, de forma direta ou indireta, é dita RECURSIVA.
LOOPING: ao utilizar recursão deve-se tomar cuidado para
que a rotina não entre em LOOP INFINITO (chamar a si
mesma infinitamente)
TERMINAÇÃO: Uma rotina recursiva deve ser finita, deve
haver uma condição de parada, que termine a rotina.
07/12/2016
3
INTRODUÇÃO
 A solução para um problema recursivo normalmente pode ser dividida em
duas partes (divisão e conquista): uma em que a solução é simples, e outra em
que a solução é mais difícil.
 TRIVIAL: fácil de se resolver e retorna um resultado, geralmente é o caso mais
básico, ou simples, do problema (inclusive, não há necessidade de se aplicar
recursão)
 GERAL (NÃO TRIVIAL ou COMPLEXO): Neste caso, o problema é, em sua
essência, igual ao problema original, porém deve ser uma versão mais
genérica, simples, menor. Como esse novo problema é parecido com o
original, a rotina chama uma nova cópia de si mesma para trabalhar no
problema menor.07/12/2016
4
INTRODUÇÃO
 Chamada Recursiva:
 Ocorre enquanto a chamada original para a rotina ainda está ativa.
 Inclui uma instrução de retorno que juntará o resultado atual com o
resultado anterior, formando o resultado final que será passado de volta
para quem chamou.
 Pode resultar em muitas chamadas, conforme a necessidade da rotina em
dividir o subproblema.
 A quebra do problema em problemas menores convergirá para o caso
básico (trivial)
 Chegando ao caso trivial, a rotina recursiva retorna um resultado para a
rotina anterior e a sequencia de RETORNOS segue na fila até a chamada
original que retornará o resultado final para quem chamou.
07/12/2016
5
INTRODUÇÃO
 Recursão Direta: é uma rotina formada por um conjunto de
comandos e uma chamada à rotina. (mesma rotina)
 Recursão Indireta: é uma rotina que contém uma chamada a
outra rotina que, por sua vez, tem uma chamada a outra rotina e
assim sucessivamente. (rotinas diferentes)
 Melhor uso para quando o problema a ser resolvido é de
natureza recursiva, ou é definido em termos recursivos. Exemplo:
estrutura de árvores.
07/12/2016
6
Exemplo: Fatorial
 O fatorial de um número natural n, representado por n!, é o produto de todos
os inteiros positivos menores ou iguais a n.
 n! = n * ( n – 1 ) * ( n – 2 ) * ( n – 3 ) * ... * 1
 Caso Básico Trivial (menor problema): 0! =1 e 1! = 1
 Caso Geral (problema complexo): n! = n * ( n -1 )!
 Exemplos: 2! = 2 * 1 = 2; 3! = 3 * 2 * 1 = 6; 4! = 4 * 3 * 2 * 1 = 24
07/12/2016
7
Exemplo: Fatorial
07/12/2016
8
function fatorial
(n:integer) :
integer;
if n = 0 then
Fatorial := 1;
Else
fatorial := n * fatorial ( n - 1 );
Quando atingir zero, as
chamadas recursivas começam a
retornar
10 N = 0 10 = 0  Fatorial := 10 * fatorial ( 10 – 1 )
Fatorial := 10 * fatorial ( 9 )
10! = 3.628.800
9 N = 0 9 = 0  F Fatorial := 9 * fatorial ( 9 – 1 )
Fatorial := 9 * fatorial ( 8 )
9! = 362.880
8 N = 0 8 = 0  F Fatorial := 8 * fatorial ( 8 – 1 )
Fatorial := 8 * fatorial ( 7 )
8! = 40.320
7 N = 0 7 = 0  F Fatorial := 7 * fatorial ( 7 – 1 )
Fatorial := 7 * fatorial (6)
7! = 5.040
6 N = 0 6 = 0  F Fatorial := 6 * fatorial ( 6 – 1 )
Fatorial := 6 * fatorial (5)
6! = 720
5 N = 0 5 = 0  F Fatorial := 5 * fatorial ( 5 – 1 )
Fatorial := 5 * fatorial ( 4 )
5! = 120
4 N = 0 4 = 0  F Fatorial := 4 * fatorial ( 4 – 1 )
Fatorial := 4 * fatorial (3)
4! = 24
3 N = 0 3 = 0  F Fatorial := 3 * fatorial ( 3 – 1 )
Fatorial := 3 * fatorial ( 2 )
3! = 6
2 N = 0 2 = 0  F Fatorial := 2 * fatorial ( 2 – 1 )
Fatorial := 2 * fatorial ( 1 )
2! = 2
1 N = 0 1 = 0  F Fatorial := 1 * fatorial ( 1 – 1 )
Fatorial := 1 * fatorial (0)
1! = 1
0 N = 0 1 = 0  V
Fatorial := 1;
0! = 1
Primeiro, o
problema é
decomposto de
cima para baixo e,
depois, é
resolvido de baixo
para cima.
07/12/2016
9
Controle de chamada e retornos de
rotinas recursivas
 Uma rotina recursiva é implementada por meio de uma PILHA.
 A PILHA armazena os dados usados em cada chamada da ROTINA que ainda
não terminou de executar.
 Quando uma rotina é evocada, são empilhadas todas as suas variáveis locais e
o endereço de retorno.
 O estado corrente deve ser registrado para posterior recuperação.
 À medida que cada chamada recursiva retorna, os dados da chamada são
removidos e a execução é retomada no ponto da chamada da rotina.
07/12/2016
10
Controle de chamada e retornos de rotinas recursivas
10
9
10
8
9
10
Fat (10)
n
n
7
8
9
10
6
7
8
9
10
5
6
7
8
9
10
4
5
6
7
8
9
10
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
1
2
3
4
5
6
7
8
9
10
n
n
n
n
n
n
n
n
Fat (9) Fat (8) Fat (7) Fat (6) Fat (5) Fat (4) Fat (3) Fat (2)
A cada momento apenas a última variável N criada pode ser acessada!
A rotina retorna para quem chamou utilizando o endereço de retorno que está no
topo da pilha.
Fat (1)
Chamadas na
Pilha de
Execução do
Programa.
A Variável N é
recriada na
pilha a cada
chamada
recursiva
07/12/2016
11
ITERAÇÃO X RECURSÃO
Tanto ITERAÇÃO quanto RECURSÃO usam repetição:
Iteração: usa repetição em forma de comandos de
repetição (for, while)
Recursão: usa a repetição na forma de chamadas
repetitivas a uma rotina
07/12/2016
12
ITERAÇÃO X RECURSÃO
Ambas precisam de um teste de terminação:
Iteração: termina quando a condição de teste falha
Recursão: termina quando se atinge o caso trivial
07/12/2016
13
ITERAÇÃO X RECURSÃO
Ambas podem entrar em loop infinito:
Iteração: se o teste nunca se tornar falso
Recursão: se o problema não for reduzido de forma que
convirja para o caso trivial
07/12/2016
14
ITERAÇÃO X RECURSÃO
Uma função que pode ser produzida por um computador,
pode ser escrita como uma função recursiva sem o uso de
iteração.
Reciprocamente, uma função recursiva pode ser descrita
através de iterações sucessivas.
Linguagem de programação funcional e Programação
Lógica.
07/12/2016
15
Exemplo: Fatorial Iterativo
07/12/2016
16
Recursão de Cauda
 Quando a chamada recursiva está no final do código da rotina
 Tem a função de criar um loop
 Exemplo: fatorial := n * fatorial ( n -1 )
 A Recursão de cauda é menos eficiente que a Iteração.
 No lugar da recursão da cauda, usar iteração.
07/12/2016
17
Recursividade em Listas, Pilhas e Filas
Nas estruturas de dados como Listas, Pilhas e Filas também
é possível usar a recursividade
São empregadas nas rotinas de remoção de elementos.
07/12/2016
18
Recursividade em Listas
07/12/2016
19
Recursividade em Listas
07/12/2016
20
Recursividade em Filas e Pilhas
07/12/2016
21
Atividade em Sala de Aula
07/12/2016
22
Referências
1. Deitel, H. M.; Deitel, P. J. Java: Como Programar. Tradução: Edson Furmankiewicz; Revisão Técnica: Fábio Luis
Picelli Lucchini. 6.ª Edição. São Paulo: Pearson Prentice Hall, 2005. Cap. 15, p. 551-581.
2. Deitel, H. M.; Deitel, P. J. C: Como Programar. Tradução: Daniel Vieira; Revisão Técnica: César Caetano. 6.ª
Edição. São Paulo: Pearson Prentice Hall, 2011. p. 137-145.
3. Deitel, H. M.; Deitel, P. J. C++: Como Programar. Tradução: Edson Furmankiewicz; Revisão Técnica: Fábio Luis
Picelli Lucchini. 5.ª Edição. São Paulo: Pearson Prentice Hall, 2006. p. 221-228.
4. Schildt, H.; Skrien, D. Programação com Java: Uma Introdução Abrangente. Tradução: Aldir José Coelho Cêrrea
da Silva. Revisão Técnica: Maria Lúcia Blanck Lisbôa. Porto Alegre: AMGH, 2013. p. 225-229.
5. Ziviani, N. Projeto de Algoritmos com Implementações em Pascal e C. 3.ª ed. rev. e amp. São Paulo: Cengage
Learning, 2015. p. 40-44.
6. Forouzan, B., Mosharraf, F. Fundamentos da Ciência da Computação. Tradução: Solange Aparecida Visconti.
Revisão Técnica: Ronaldo A. L. Gonçalves. São Paulo: Cengage Learning, 2011. p. 208-210.
7. Pereira, S. L. Estruturas de Dados Fundamentais: Conceitos e Aplicações. São Paulo: Érica, 1996. cap. 13, p. 145-
15607/12/2016
23

Mais conteúdo relacionado

Mais procurados

Comparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoComparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoLenon Fachiano
 
3º Fast Show - SQL Analytics
3º Fast Show - SQL Analytics3º Fast Show - SQL Analytics
3º Fast Show - SQL Analyticsqualidatavix
 
Análise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoAnálise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoOrlando Junior
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenaçãoDaiana de Ávila
 
01 Orientacao A Objetos Programacao
01   Orientacao A Objetos   Programacao01   Orientacao A Objetos   Programacao
01 Orientacao A Objetos Programacaotaniamaciel
 

Mais procurados (7)

Aula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmosAula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmos
 
Comparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de OrdenaçãoComparação Experimental de Algoritmos de Ordenação
Comparação Experimental de Algoritmos de Ordenação
 
3º Fast Show - SQL Analytics
3º Fast Show - SQL Analytics3º Fast Show - SQL Analytics
3º Fast Show - SQL Analytics
 
Análise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoAnálise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenação
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
01 Orientacao A Objetos Programacao
01   Orientacao A Objetos   Programacao01   Orientacao A Objetos   Programacao
01 Orientacao A Objetos Programacao
 
Ordenação
OrdenaçãoOrdenação
Ordenação
 

Destaque (20)

Filas
FilasFilas
Filas
 
Pilhas
PilhasPilhas
Pilhas
 
Arquiteturas de Computadores Paralelos
Arquiteturas de Computadores ParalelosArquiteturas de Computadores Paralelos
Arquiteturas de Computadores Paralelos
 
Fila circular dinamica
Fila circular dinamicaFila circular dinamica
Fila circular dinamica
 
Arquitetura de Computadores: Assembly
Arquitetura de Computadores: AssemblyArquitetura de Computadores: Assembly
Arquitetura de Computadores: Assembly
 
Processo e Processo de Software
Processo e Processo de SoftwareProcesso e Processo de Software
Processo e Processo de Software
 
Lista de Prioridades
Lista de PrioridadesLista de Prioridades
Lista de Prioridades
 
Arquitetura de Computadores: Memórias Ram
Arquitetura de Computadores: Memórias RamArquitetura de Computadores: Memórias Ram
Arquitetura de Computadores: Memórias Ram
 
Arquitetura de Computadores: Memórias - Nível lógico
Arquitetura de Computadores: Memórias - Nível lógicoArquitetura de Computadores: Memórias - Nível lógico
Arquitetura de Computadores: Memórias - Nível lógico
 
Clock
ClockClock
Clock
 
Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3
 
Hierarquia de níveis
Hierarquia de níveisHierarquia de níveis
Hierarquia de níveis
 
Memórias Ram
Memórias RamMemórias Ram
Memórias Ram
 
Processadores intel 8008 e 8080
Processadores intel 8008 e 8080Processadores intel 8008 e 8080
Processadores intel 8008 e 8080
 
Barramentos
Barramentos Barramentos
Barramentos
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginas
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintótica
 
Glosario de qbasic liliana
Glosario de qbasic lilianaGlosario de qbasic liliana
Glosario de qbasic liliana
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem
 
Funções em C
Funções em CFunções em C
Funções em C
 

Semelhante a Recursão

Recursividade em C
Recursividade em CRecursividade em C
Recursividade em CCaique Silva
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dadosgjpbg
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2Leandro Lopes
 
Programando Melhor - Flisol
Programando Melhor - FlisolProgramando Melhor - Flisol
Programando Melhor - FlisolLeonn Leite
 
Pesquisa e ordenação recursividade
Pesquisa e ordenação   recursividadePesquisa e ordenação   recursividade
Pesquisa e ordenação recursividadeMauricio Wieler
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_javaMirlem Pereira
 
Métodos Iterativos - Gauss-Seidel - @professorenan
Métodos Iterativos - Gauss-Seidel - @professorenanMétodos Iterativos - Gauss-Seidel - @professorenan
Métodos Iterativos - Gauss-Seidel - @professorenanRenan Gustavo
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeRegis Magalhães
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem CLeonardo Lima
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçaossuserc6132d
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04thomasdacosta
 

Semelhante a Recursão (20)

Recursividade
RecursividadeRecursividade
Recursividade
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Recursividade em C
Recursividade em CRecursividade em C
Recursividade em C
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Apostila estrutura de dados 2
Apostila estrutura de dados 2Apostila estrutura de dados 2
Apostila estrutura de dados 2
 
Programando Melhor - Flisol
Programando Melhor - FlisolProgramando Melhor - Flisol
Programando Melhor - Flisol
 
Hp 12 c
Hp 12 cHp 12 c
Hp 12 c
 
Lista Circular em Java
Lista Circular em JavaLista Circular em Java
Lista Circular em Java
 
Pesquisa e ordenação recursividade
Pesquisa e ordenação   recursividadePesquisa e ordenação   recursividade
Pesquisa e ordenação recursividade
 
AP5_2013_2.pptx
AP5_2013_2.pptxAP5_2013_2.pptx
AP5_2013_2.pptx
 
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
8a. aula -_estrutura_de_controle_de_repeticao_-_while_java
 
Aula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmosAula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmos
 
Aula 7 aed - sub algoritmos
Aula 7   aed - sub algoritmosAula 7   aed - sub algoritmos
Aula 7 aed - sub algoritmos
 
Estrutura de dados em Java - Recursividade
Estrutura de dados em Java - RecursividadeEstrutura de dados em Java - Recursividade
Estrutura de dados em Java - Recursividade
 
Métodos Iterativos - Gauss-Seidel - @professorenan
Métodos Iterativos - Gauss-Seidel - @professorenanMétodos Iterativos - Gauss-Seidel - @professorenan
Métodos Iterativos - Gauss-Seidel - @professorenan
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 
Recursividade em linguagem C
Recursividade em linguagem CRecursividade em linguagem C
Recursividade em linguagem C
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Conceito de funçao e modularizaçao
Conceito de funçao e modularizaçaoConceito de funçao e modularizaçao
Conceito de funçao e modularizaçao
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04
 

Mais de Elaine Cecília Gatto

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaElaine Cecília Gatto
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaElaine Cecília Gatto
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Elaine Cecília Gatto
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCElaine Cecília Gatto
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxElaine Cecília Gatto
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Elaine Cecília Gatto
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarElaine Cecília Gatto
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesElaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationElaine Cecília Gatto
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfElaine Cecília Gatto
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Elaine Cecília Gatto
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...Elaine Cecília Gatto
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoElaine Cecília Gatto
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsElaine Cecília Gatto
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoElaine Cecília Gatto
 

Mais de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Último

Apresente de forma sucinta as atividades realizadas ao longo do semestre, con...
Apresente de forma sucinta as atividades realizadas ao longo do semestre, con...Apresente de forma sucinta as atividades realizadas ao longo do semestre, con...
Apresente de forma sucinta as atividades realizadas ao longo do semestre, con...Colaborar Educacional
 
Peixeiras da Coruña. O Muro da Coruña. IES Monelos
Peixeiras da Coruña. O Muro da Coruña. IES MonelosPeixeiras da Coruña. O Muro da Coruña. IES Monelos
Peixeiras da Coruña. O Muro da Coruña. IES MonelosAgrela Elvixeo
 
Termo de audiência de Mauro Cid na ìntegra
Termo de audiência de Mauro Cid na ìntegraTermo de audiência de Mauro Cid na ìntegra
Termo de audiência de Mauro Cid na ìntegrafernando846621
 
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)profesfrancleite
 
Como fazer um Feedback Eficaz - Comitê de Gestores
Como fazer um Feedback Eficaz - Comitê de GestoresComo fazer um Feedback Eficaz - Comitê de Gestores
Como fazer um Feedback Eficaz - Comitê de GestoresEu Prefiro o Paraíso.
 
1. CIENCIAS-HUMANAS-GLOBALIZAÇÃO, TEMPO E ESPAÇO-V1.pdf
1. CIENCIAS-HUMANAS-GLOBALIZAÇÃO, TEMPO E ESPAÇO-V1.pdf1. CIENCIAS-HUMANAS-GLOBALIZAÇÃO, TEMPO E ESPAÇO-V1.pdf
1. CIENCIAS-HUMANAS-GLOBALIZAÇÃO, TEMPO E ESPAÇO-V1.pdfRitoneltonSouzaSanto
 
arte retrato de um povo - Expressão Cultural e Identidade Nacional
arte retrato de um povo - Expressão Cultural e Identidade Nacionalarte retrato de um povo - Expressão Cultural e Identidade Nacional
arte retrato de um povo - Expressão Cultural e Identidade Nacionalidicacia
 
Aula 6 - O Imperialismo e seu discurso civilizatório.pptx
Aula 6 - O Imperialismo e seu discurso civilizatório.pptxAula 6 - O Imperialismo e seu discurso civilizatório.pptx
Aula 6 - O Imperialismo e seu discurso civilizatório.pptxMarceloDosSantosSoar3
 
aula 1.pptx Ementa e Plano de ensino Filosofia
aula 1.pptx Ementa e  Plano de ensino Filosofiaaula 1.pptx Ementa e  Plano de ensino Filosofia
aula 1.pptx Ementa e Plano de ensino FilosofiaLucliaResende1
 
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARX
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARXA CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARX
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARXHisrelBlog
 
Cruzadinha da dengue - Mosquito Aedes aegypti
Cruzadinha da dengue - Mosquito Aedes aegyptiCruzadinha da dengue - Mosquito Aedes aegypti
Cruzadinha da dengue - Mosquito Aedes aegyptiMary Alvarenga
 
Atividade de matemática para simulado de 2024
Atividade de matemática para simulado de 2024Atividade de matemática para simulado de 2024
Atividade de matemática para simulado de 2024gilmaraoliveira0612
 
Poema sobre o mosquito Aedes aegipyti -
Poema sobre o mosquito Aedes aegipyti  -Poema sobre o mosquito Aedes aegipyti  -
Poema sobre o mosquito Aedes aegipyti -Mary Alvarenga
 
ARTE BARROCA E ROCOCO BRASILEIRO-min.pdf
ARTE BARROCA E ROCOCO BRASILEIRO-min.pdfARTE BARROCA E ROCOCO BRASILEIRO-min.pdf
ARTE BARROCA E ROCOCO BRASILEIRO-min.pdfItaloAtsoc
 
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdf
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdfEBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdf
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdfIBEE5
 
PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...
PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...
PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...Colaborar Educacional
 
Caça palavras - BULLYING
Caça palavras  -  BULLYING  Caça palavras  -  BULLYING
Caça palavras - BULLYING Mary Alvarenga
 
Poder do convencimento,........... .
Poder do convencimento,...........         .Poder do convencimento,...........         .
Poder do convencimento,........... .WAGNERJESUSDACUNHA
 

Último (20)

Apresente de forma sucinta as atividades realizadas ao longo do semestre, con...
Apresente de forma sucinta as atividades realizadas ao longo do semestre, con...Apresente de forma sucinta as atividades realizadas ao longo do semestre, con...
Apresente de forma sucinta as atividades realizadas ao longo do semestre, con...
 
Abordagem 1. Análise textual (Severino, 2013).pdf
Abordagem 1. Análise textual (Severino, 2013).pdfAbordagem 1. Análise textual (Severino, 2013).pdf
Abordagem 1. Análise textual (Severino, 2013).pdf
 
Peixeiras da Coruña. O Muro da Coruña. IES Monelos
Peixeiras da Coruña. O Muro da Coruña. IES MonelosPeixeiras da Coruña. O Muro da Coruña. IES Monelos
Peixeiras da Coruña. O Muro da Coruña. IES Monelos
 
Termo de audiência de Mauro Cid na ìntegra
Termo de audiência de Mauro Cid na ìntegraTermo de audiência de Mauro Cid na ìntegra
Termo de audiência de Mauro Cid na ìntegra
 
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)
AS REBELIÕES NA AMERICA IBERICA (Prof. Francisco Leite)
 
Como fazer um Feedback Eficaz - Comitê de Gestores
Como fazer um Feedback Eficaz - Comitê de GestoresComo fazer um Feedback Eficaz - Comitê de Gestores
Como fazer um Feedback Eficaz - Comitê de Gestores
 
1. CIENCIAS-HUMANAS-GLOBALIZAÇÃO, TEMPO E ESPAÇO-V1.pdf
1. CIENCIAS-HUMANAS-GLOBALIZAÇÃO, TEMPO E ESPAÇO-V1.pdf1. CIENCIAS-HUMANAS-GLOBALIZAÇÃO, TEMPO E ESPAÇO-V1.pdf
1. CIENCIAS-HUMANAS-GLOBALIZAÇÃO, TEMPO E ESPAÇO-V1.pdf
 
arte retrato de um povo - Expressão Cultural e Identidade Nacional
arte retrato de um povo - Expressão Cultural e Identidade Nacionalarte retrato de um povo - Expressão Cultural e Identidade Nacional
arte retrato de um povo - Expressão Cultural e Identidade Nacional
 
(42-ESTUDO - LUCAS) DISCIPULO DE JESUS
(42-ESTUDO - LUCAS)  DISCIPULO  DE JESUS(42-ESTUDO - LUCAS)  DISCIPULO  DE JESUS
(42-ESTUDO - LUCAS) DISCIPULO DE JESUS
 
Aula 6 - O Imperialismo e seu discurso civilizatório.pptx
Aula 6 - O Imperialismo e seu discurso civilizatório.pptxAula 6 - O Imperialismo e seu discurso civilizatório.pptx
Aula 6 - O Imperialismo e seu discurso civilizatório.pptx
 
aula 1.pptx Ementa e Plano de ensino Filosofia
aula 1.pptx Ementa e  Plano de ensino Filosofiaaula 1.pptx Ementa e  Plano de ensino Filosofia
aula 1.pptx Ementa e Plano de ensino Filosofia
 
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARX
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARXA CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARX
A CONCEPÇÃO FILO/SOCIOLÓGICA DE KARL MARX
 
Cruzadinha da dengue - Mosquito Aedes aegypti
Cruzadinha da dengue - Mosquito Aedes aegyptiCruzadinha da dengue - Mosquito Aedes aegypti
Cruzadinha da dengue - Mosquito Aedes aegypti
 
Atividade de matemática para simulado de 2024
Atividade de matemática para simulado de 2024Atividade de matemática para simulado de 2024
Atividade de matemática para simulado de 2024
 
Poema sobre o mosquito Aedes aegipyti -
Poema sobre o mosquito Aedes aegipyti  -Poema sobre o mosquito Aedes aegipyti  -
Poema sobre o mosquito Aedes aegipyti -
 
ARTE BARROCA E ROCOCO BRASILEIRO-min.pdf
ARTE BARROCA E ROCOCO BRASILEIRO-min.pdfARTE BARROCA E ROCOCO BRASILEIRO-min.pdf
ARTE BARROCA E ROCOCO BRASILEIRO-min.pdf
 
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdf
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdfEBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdf
EBOOK LINGUAGEM GRATUITO EUDCAÇÃO INFANTIL.pdf
 
PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...
PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...
PROJETO DE EXTENSÃO - SEGURANÇA, INOVAÇÃO E SUSTENTABILIDADE PARA O BEM COMUM...
 
Caça palavras - BULLYING
Caça palavras  -  BULLYING  Caça palavras  -  BULLYING
Caça palavras - BULLYING
 
Poder do convencimento,........... .
Poder do convencimento,...........         .Poder do convencimento,...........         .
Poder do convencimento,........... .
 

Recursão

  • 1. RECURSIVIDADE Departamento de Engenharia de Computação Algoritmos e Estruturas de Dados 07/12/2016 1
  • 2. AGENDA Introdução Exemplo: Fatorial Controle de Chamada e Retorno de Rotinas Recursivas Iteração X Recursão Exemplo: Fatorial Recursão de Cauda Recursividade em Listas, Pilhas e Filas 07/12/2016 2
  • 3. INTRODUÇÃO Uma rotina (procedimento ou função) que chama a si mesma, de forma direta ou indireta, é dita RECURSIVA. LOOPING: ao utilizar recursão deve-se tomar cuidado para que a rotina não entre em LOOP INFINITO (chamar a si mesma infinitamente) TERMINAÇÃO: Uma rotina recursiva deve ser finita, deve haver uma condição de parada, que termine a rotina. 07/12/2016 3
  • 4. INTRODUÇÃO  A solução para um problema recursivo normalmente pode ser dividida em duas partes (divisão e conquista): uma em que a solução é simples, e outra em que a solução é mais difícil.  TRIVIAL: fácil de se resolver e retorna um resultado, geralmente é o caso mais básico, ou simples, do problema (inclusive, não há necessidade de se aplicar recursão)  GERAL (NÃO TRIVIAL ou COMPLEXO): Neste caso, o problema é, em sua essência, igual ao problema original, porém deve ser uma versão mais genérica, simples, menor. Como esse novo problema é parecido com o original, a rotina chama uma nova cópia de si mesma para trabalhar no problema menor.07/12/2016 4
  • 5. INTRODUÇÃO  Chamada Recursiva:  Ocorre enquanto a chamada original para a rotina ainda está ativa.  Inclui uma instrução de retorno que juntará o resultado atual com o resultado anterior, formando o resultado final que será passado de volta para quem chamou.  Pode resultar em muitas chamadas, conforme a necessidade da rotina em dividir o subproblema.  A quebra do problema em problemas menores convergirá para o caso básico (trivial)  Chegando ao caso trivial, a rotina recursiva retorna um resultado para a rotina anterior e a sequencia de RETORNOS segue na fila até a chamada original que retornará o resultado final para quem chamou. 07/12/2016 5
  • 6. INTRODUÇÃO  Recursão Direta: é uma rotina formada por um conjunto de comandos e uma chamada à rotina. (mesma rotina)  Recursão Indireta: é uma rotina que contém uma chamada a outra rotina que, por sua vez, tem uma chamada a outra rotina e assim sucessivamente. (rotinas diferentes)  Melhor uso para quando o problema a ser resolvido é de natureza recursiva, ou é definido em termos recursivos. Exemplo: estrutura de árvores. 07/12/2016 6
  • 7. Exemplo: Fatorial  O fatorial de um número natural n, representado por n!, é o produto de todos os inteiros positivos menores ou iguais a n.  n! = n * ( n – 1 ) * ( n – 2 ) * ( n – 3 ) * ... * 1  Caso Básico Trivial (menor problema): 0! =1 e 1! = 1  Caso Geral (problema complexo): n! = n * ( n -1 )!  Exemplos: 2! = 2 * 1 = 2; 3! = 3 * 2 * 1 = 6; 4! = 4 * 3 * 2 * 1 = 24 07/12/2016 7
  • 9. function fatorial (n:integer) : integer; if n = 0 then Fatorial := 1; Else fatorial := n * fatorial ( n - 1 ); Quando atingir zero, as chamadas recursivas começam a retornar 10 N = 0 10 = 0  Fatorial := 10 * fatorial ( 10 – 1 ) Fatorial := 10 * fatorial ( 9 ) 10! = 3.628.800 9 N = 0 9 = 0  F Fatorial := 9 * fatorial ( 9 – 1 ) Fatorial := 9 * fatorial ( 8 ) 9! = 362.880 8 N = 0 8 = 0  F Fatorial := 8 * fatorial ( 8 – 1 ) Fatorial := 8 * fatorial ( 7 ) 8! = 40.320 7 N = 0 7 = 0  F Fatorial := 7 * fatorial ( 7 – 1 ) Fatorial := 7 * fatorial (6) 7! = 5.040 6 N = 0 6 = 0  F Fatorial := 6 * fatorial ( 6 – 1 ) Fatorial := 6 * fatorial (5) 6! = 720 5 N = 0 5 = 0  F Fatorial := 5 * fatorial ( 5 – 1 ) Fatorial := 5 * fatorial ( 4 ) 5! = 120 4 N = 0 4 = 0  F Fatorial := 4 * fatorial ( 4 – 1 ) Fatorial := 4 * fatorial (3) 4! = 24 3 N = 0 3 = 0  F Fatorial := 3 * fatorial ( 3 – 1 ) Fatorial := 3 * fatorial ( 2 ) 3! = 6 2 N = 0 2 = 0  F Fatorial := 2 * fatorial ( 2 – 1 ) Fatorial := 2 * fatorial ( 1 ) 2! = 2 1 N = 0 1 = 0  F Fatorial := 1 * fatorial ( 1 – 1 ) Fatorial := 1 * fatorial (0) 1! = 1 0 N = 0 1 = 0  V Fatorial := 1; 0! = 1 Primeiro, o problema é decomposto de cima para baixo e, depois, é resolvido de baixo para cima. 07/12/2016 9
  • 10. Controle de chamada e retornos de rotinas recursivas  Uma rotina recursiva é implementada por meio de uma PILHA.  A PILHA armazena os dados usados em cada chamada da ROTINA que ainda não terminou de executar.  Quando uma rotina é evocada, são empilhadas todas as suas variáveis locais e o endereço de retorno.  O estado corrente deve ser registrado para posterior recuperação.  À medida que cada chamada recursiva retorna, os dados da chamada são removidos e a execução é retomada no ponto da chamada da rotina. 07/12/2016 10
  • 11. Controle de chamada e retornos de rotinas recursivas 10 9 10 8 9 10 Fat (10) n n 7 8 9 10 6 7 8 9 10 5 6 7 8 9 10 4 5 6 7 8 9 10 3 4 5 6 7 8 9 10 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 n n n n n n n n Fat (9) Fat (8) Fat (7) Fat (6) Fat (5) Fat (4) Fat (3) Fat (2) A cada momento apenas a última variável N criada pode ser acessada! A rotina retorna para quem chamou utilizando o endereço de retorno que está no topo da pilha. Fat (1) Chamadas na Pilha de Execução do Programa. A Variável N é recriada na pilha a cada chamada recursiva 07/12/2016 11
  • 12. ITERAÇÃO X RECURSÃO Tanto ITERAÇÃO quanto RECURSÃO usam repetição: Iteração: usa repetição em forma de comandos de repetição (for, while) Recursão: usa a repetição na forma de chamadas repetitivas a uma rotina 07/12/2016 12
  • 13. ITERAÇÃO X RECURSÃO Ambas precisam de um teste de terminação: Iteração: termina quando a condição de teste falha Recursão: termina quando se atinge o caso trivial 07/12/2016 13
  • 14. ITERAÇÃO X RECURSÃO Ambas podem entrar em loop infinito: Iteração: se o teste nunca se tornar falso Recursão: se o problema não for reduzido de forma que convirja para o caso trivial 07/12/2016 14
  • 15. ITERAÇÃO X RECURSÃO Uma função que pode ser produzida por um computador, pode ser escrita como uma função recursiva sem o uso de iteração. Reciprocamente, uma função recursiva pode ser descrita através de iterações sucessivas. Linguagem de programação funcional e Programação Lógica. 07/12/2016 15
  • 17. Recursão de Cauda  Quando a chamada recursiva está no final do código da rotina  Tem a função de criar um loop  Exemplo: fatorial := n * fatorial ( n -1 )  A Recursão de cauda é menos eficiente que a Iteração.  No lugar da recursão da cauda, usar iteração. 07/12/2016 17
  • 18. Recursividade em Listas, Pilhas e Filas Nas estruturas de dados como Listas, Pilhas e Filas também é possível usar a recursividade São empregadas nas rotinas de remoção de elementos. 07/12/2016 18
  • 21. Recursividade em Filas e Pilhas 07/12/2016 21
  • 22. Atividade em Sala de Aula 07/12/2016 22
  • 23. Referências 1. Deitel, H. M.; Deitel, P. J. Java: Como Programar. Tradução: Edson Furmankiewicz; Revisão Técnica: Fábio Luis Picelli Lucchini. 6.ª Edição. São Paulo: Pearson Prentice Hall, 2005. Cap. 15, p. 551-581. 2. Deitel, H. M.; Deitel, P. J. C: Como Programar. Tradução: Daniel Vieira; Revisão Técnica: César Caetano. 6.ª Edição. São Paulo: Pearson Prentice Hall, 2011. p. 137-145. 3. Deitel, H. M.; Deitel, P. J. C++: Como Programar. Tradução: Edson Furmankiewicz; Revisão Técnica: Fábio Luis Picelli Lucchini. 5.ª Edição. São Paulo: Pearson Prentice Hall, 2006. p. 221-228. 4. Schildt, H.; Skrien, D. Programação com Java: Uma Introdução Abrangente. Tradução: Aldir José Coelho Cêrrea da Silva. Revisão Técnica: Maria Lúcia Blanck Lisbôa. Porto Alegre: AMGH, 2013. p. 225-229. 5. Ziviani, N. Projeto de Algoritmos com Implementações em Pascal e C. 3.ª ed. rev. e amp. São Paulo: Cengage Learning, 2015. p. 40-44. 6. Forouzan, B., Mosharraf, F. Fundamentos da Ciência da Computação. Tradução: Solange Aparecida Visconti. Revisão Técnica: Ronaldo A. L. Gonçalves. São Paulo: Cengage Learning, 2011. p. 208-210. 7. Pereira, S. L. Estruturas de Dados Fundamentais: Conceitos e Aplicações. São Paulo: Érica, 1996. cap. 13, p. 145- 15607/12/2016 23