Free Web Hosting Provider - Web Hosting - E-commerce - High Speed Internet - Free Web Page
Search the Web


-------------
RECURSIVIDADE
-------------
        Esse  lance de funções recursivas, na minha  opinião é o que  há de
de mais bonito e elegante na programação. Através da recursividade, podemos
escrever rotinas funcionais com muito  mais  clareza e muito  menos linhas.
Uma  rotina  recursiva  é  uma  rotina  que  evoca a si mesma. Isso é muito
prático  para  o  programador,  mas  é muito penoso para a máquina e, quase
sempre  uma  rotina  recursiva  é  mais  lenta  do  que  uma  iterativa  ou
não-recursiva.  Isso acontece porque a cada chamada de uma sub-rotina feita
pelo programa, o computador guarda na pilha interna o endereço da instrução
imediatamente posterior à essa chamada para que, ao final da execução dessa
subrotina, a execução do programa possa retornar ao mesmo lugar de onde foi
desviada.

	Quando várias chamadas  de sub-rotinas são  realizadas seguidamente
sem haver retorno, o que geralmente acontece em funções recursivas, a pilha
interna do computador pode aumentar até não caber em seu segmento, até  que
ocorra um estouro de pilha ou "stack overflow".

        Vamos  ver  agora  um  exemplo  clássico de  aplicação  de  funções
recursivas, o cálculo de um fatorial:


	// retorna o fatorial de um número, ou seja: n*(n-1)*(n-2)* ... *1
	int fatorial (int N)
	{
		if (N == 1) return 1;
		return N * fatorial (N - 1);
	}


        Simples não?  Esse  tipo de  rotina é  muito  utilizado em  árvores
binárias além de ser indispensável  para a solução do  problema das "Torres 
de Hanói". De uma olhada nesses tópicos, pois eles são muito interessantes.

        Para saber mais...

------> Cálculo do Máximo Divisor Comum através de um rotina recursiva em C

------> Pilhas
------> Torres de Hanói
------> Árvores Binárias
[HOME]