Académique Documents
Professionnel Documents
Culture Documents
Len
Facultad de Ingeniera Mecnica y
Elctrica
Introduccin
En esta investigacin hablar acerca de lo que es un algoritmo recursivo y las
estructuras lineales. Pero antes debemos saber lo que es la recursividad, que es
una caracterstica de los lenguajes de programacin que permite que un
subprograma se invoque a s mismo, es til para resolver problemas definibles en
sus propios trminos. Y las estructuras lineales de datos se caracterizan porque
sus elementos estn en secuencia, relacionados en forma lineal, uno luego del
otro. Esta investigacin se hace con el fin de saber lo que es un algoritmo
recursivo y las estructuras lineales.
Algoritmo recursivo
La recursividad es una caracterstica de los lenguajes de programacin que
permite que un subprograma se invoque a s mismo, es til para resolver
problemas definibles en sus propios trminos. Es, en cierta medida, anloga al
principio de induccin.
No existen problemas intrnsecamente recursivos o iterativos; cualquier proceso
iterativo puede expresarse de forma recursiva y viceversa. La recursividad aunque
da lugar a algoritmos ms simples y compactos resulta ms lenta y consume ms
recursos al ejecutarse sobre el ordenador.
Para desarrollar algoritmos recursivos hay que partir del supuesto de que ya existe
un algoritmo que resuelve una versin ms sencilla del problema.
A partir de esta suposicin debe hacerse lo siguiente:
1. Identificar subproblemas atmicos de resolucin inmediata (casos base).
2. Descomponer el problema en subproblemas resolubles mediante el algoritmo
pre-existente; la solucin de estos subproblemas debe aproximarnos a los casos
base.
3. Probar de manera informal que tanto los casos base como los generales
pueden solucionarse con el algoritmo desarrollado.
Factorial de un nmero, n!
Algoritmo pre-existente: (n-1)!
Caso base: 0! = 1
Subproblemas resolubles mediante el algoritmo pre-existente y que aproximen al
caso base: n! = n (n-1)!
Prueba informal: Conociendo las dos expresiones anteriores es posible calcular 0!,
1!, 4!, etc.
Potencia de un nmero, an
Algoritmo pre-existente: an-1
Caso base: a0 = 1
Subproblemas resolubles mediante el algoritmo pre-existente y que aproximen al
caso base: an = a an-1
Prueba informal: Conociendo las dos expresiones anteriores es posible calcular 2 0,
43, 34, etc.
los nuevos nodos pueden ser solo eficientemente insertados despus de uno que
ya tengamos referenciado. Por esta razn, es usual quedarse con una referencia
solamente al ltimo elemento en una lista enlazada circular simple, esto nos
permite rpidas inserciones al principio, y tambin permite accesos al primer nodo
desde el puntero del ltimo nodo.
Lista Enlazada Doblemente Circular:
En una lista enlazada doblemente circular, cada nodo tiene dos enlaces, similares
a los de la lista doblemente enlazada, excepto que el enlace anterior del primer
nodo apunta al ltimo y el enlace siguiente del ltimo nodo, apunta al primero.
Como en una lista doblemente enlazada, las inserciones y eliminaciones pueden
ser hechas desde cualquier punto con acceso a algn nodo cercano. Aunque
estructuralmente una lista circular doblemente enlazada no tiene ni principio ni fin,
un puntero de acceso externo puede establecer el nodo apuntado que est en la
cabeza o al nodo cola, y as mantener el orden tan bien como en una lista
doblemente enlazada.
Nodos Centinelas:
A veces las listas enlazadas tienen un nodo centinela (tambin llamado falso nodo
o nodo ficticio) al principio o al final de la lista, el cual no es usado para guardar
datos. Su propsito es simplificar o agilizar algunas operaciones, asegurando que
cualquier nodo tiene otro anterior o posterior, y que toda la lista (incluso alguna
que no contenga datos) siempre tenga un primer y ltimo nodo.
Las listas enlazadas pueden ser implementadas en muchos lenguajes. Lenguajes
tales como Lisp y Scheme tiene estructuras de datos ya construidas, junto con
operaciones para acceder a las listas enlazadas. Lenguajes imperativos u
orientados a objetos tales como C o C++ y Java, respectivamente, disponen de
referencias para crear listas enlazadas.
Conclusin
El algoritmo recursivo es ms que nada para resolver problemas y las estructuras
de datos se caracterizan porque como su nombre lo dice que sus datos tienen una
estructura, esa estructura es en secuencia.
Referencias
http://di002.edv.uniovi.es/~dani/asignaturas/transparencias-leccion6.PDF
http://es.wikipedia.org/wiki/Algoritmo_recursivo
http://estr-org-datos.wikispaces.com/ESTRUCTURAS+LINEALES
http://es.slideshare.net/YanahuiBc/u2-10019288?related=1