viernes, 25 de octubre de 2013

Colas circular

Colas circular y Recursividad.

Figura numero 10
Para  implementar una cola circular  debemos realizar unos cambios en la clase cola para el método de llena, y los metodos como poner y quitar. las modificaciones son:

llena: (frente==0&& fin==max-1)||(fin==frente-1)

poner: if(fin==max-1){
fin =0;
} else {
fin++;
}

quitar: if(frente==max-1){
frente =0;
} else {
frente++;
}

En la figura numero 10 se ilusta una cola circular con una variable v (vector) que apunta al objeto, el circulo que tiene la flecha tiene como obnjetivo mostrar en que sentido se va insertando en la cola.

Recursividad 

1. Definicion: propiedad de las funciones (metodos) de autollamarse, se constituye una alternativa de los procesos iterativos (for, while, do while).

2. Utilidad: cuando el proceso o solucion iterativa es compleja.

3. Aplicaciones: recorrido de estructuras no lineales, en algunas formulas matematicas.

4.    Recursividad Vs Iteracion.
Recursividad
Iteración
métodos
ciclos
Reducción de código máxima
Reducción de código mínima
Lógica simple
Puede ser muy complejo
Considerable consumo de memoria
Consumo mínimo de memoria

Apreciacion importante y reflexion.

La recursividad consume mas memoria por que en cada autollamado hace una copia de toda la funcion y es guardada el la pila para llamado a subprogramas.

Tener muy en cuenta que siempre que se pueda usar un algoritmo no recursivo resultaria mejor ya que se ejecuta mas rapidamente y ocupa menos memoria ram  .

No hay comentarios:

Publicar un comentario