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