You are on page 1of 15

RECURSIVIDAD

DEFINICIN
La recursividad es una tcnica con la que un problema se resuelve sustituyndolo por otro problema de la misma forma pero ms simple.

CARACTERISTICAS
Un algoritmo recursivo consta de una parte recursiva, otra iterativa o no recursiva y una condicin de terminacin. La parte recursiva y la condicin de terminacin siempre existen. En cambio la parte no recursiva puede coincidir con la condicin de terminacin. Algo muy importante a tener en cuenta cuando se use la recursividad es que es necesario asegurarnos que llega un momento en que no hacemos ms llamadas recursivas. Si no se cumple esta condicin el programa no parar nunca.

TIPOS DE RECURSIVIDAD
DIRECTA.:

Cuando un subprograma se llama as mismo uno o ms veces directamente


INDIRECTA: Cuando se define una seria de subprogramas usndose unos a otros

Segn el nmero de llamadas recursivas generadas en tiempo de ejecucin: *LINEAL.- (o simple) se genera solo una llamada interna *NO LINEAL.- (o mltiple) se generan dos o ms llamadas internas Segn el punto donde se realice la llamada recursiva, las funciones recursivas pueden ser: *FINAL.-la llamada recursiva es la ltima instruccin que se produce dentro de la funcin *NO FINAL.- se hace alguna operacin al volver de la llamada recursiva

VENTAJAS Y DESVENTAJAS
Una de las grandes ventajas de la recursividad es que de manera natural, sencilla y comprensible soluciona problemas y es muy fcil comprobar que estn en lo correcto. Las soluciones recursivas son ms ineficientes en tiempo y espacio que las versiones interactivas debido a las llamadas a subprogramas

APLICACIONES
Un ejemplo de recursividad muy sencillo es la factorial. La factorial se resuelve multiplicando ese nmero por todos los nmeros naturales que hay entre l y 1. Un ejemplo: de 4 es = 4*3*2*1. Si notamos para el ejemplo de factorial de 4 se puede resolver como 4*3! (4*factorial3). Es decir podemos calcular la factorial de un nmero multiplicado ese nmero por factorial de ese nmero menos 1. n!=n*(n1)!

Los problemas que tienen una solucin con orden de complejidad lineal son los problemas que se resuelven en un tiempo que se relaciona linealmente con su tamao. La complejidad de un algoritmo se basa en el coste de las instrucciones que lo componen pero el clculo depende de si el algoritmo es o no recursivo

COMPLEJIDAD COMPUTACIONAL

Una pila (stack en ingles) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del ingls Last In First Out, ltimo en entrar, primero en salir) que permite almacenar y recuperar datos. Esta estructura se aplica en multitud de ocasiones en el rea de informtica debido a su simplicidad y ordenacin implcita de la propia estructura.

PILAS

CARACTERISTICAS
A diferencia de las colas, en las pilas los tems se aaden y se eliminan en el mismo extremo. Las pilas se conocen tambin como colas LIFO (ltimo en entrar, primero en salir), para diferenciarlas de las colas FIFO al describir el tipo de cola bsica.

APLICACIONES
Proporcionan un medio ordenado de demorar la realizacin de las tareas secundarias que aparecen durante la ejecucin del programa. Suelen ir asociadas a algoritmos recursivos.

Tipos derivados: pilas de programas,


pila del analizador sintctico (parser).

VENTAJAS Y DESVENTAJAS

La ventaja de este tipo de estructura es que siempre se puede llegar a cualquier nodo siguiendo los enlaces. La desventaja es que si no se tiene cuidado una bsqueda puede resultar en un bucle infinito. Esto se puede evitar al determinar a un nodo como nodo-cabeza o nodo inicial

COLAS
Una cola (tambin llamada fila) es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operacin de insercin push se realiza por un extremo y la operacin de extraccin pop por el otro. Tambin se le llama estructura FIFO (del ingls First In FirstOut), debido a que el primer elemento en entrar ser tambin el primero en salir.

LISTAS

Una lista es una secuencia de longitud variable de elementos del mismo tipo;

TIPOS DE LISTAS

Listas Contiguas
Listas Enlazadas Listas Circulares Listas Doblemente Enlazadas

LAS OPERACIONES MS COMUNES EN UNA LISTA


simplemente enlazada son las siguientes:

Recorrido de la lista.
Bsqueda de un elemento en la lista. Insercin de elementos en la lista. Supresin de elementos de la lista.

Vaciado de la lista.

You might also like