Práctico 9, ej2 parte 3

Práctico 9, ej2 parte 3

de Joaquín Sande González -
Número de respuestas: 1

Buenas. Era para consultar si la siguiente solución es correcta:

procedure getInode(cam: array of char; var nro_inodo : int ; var OK boolean)

var min : integer;

var max : integer;

var dir : integer;

begin

min = 0;

max = 0;

dir = 0;

OK = false;

while (not OK and max<=cam.INDICE_MAXIMO) do

begin //encontrar el "string" con el nombre 

min = max;

max ++;

while (max <= cam.INDICE_MAXIMO and cam[max] != '/')

max++

nombre = cam[min+1 .. max];

searchFile(nombre, dir, dir, OK);

end

end

Mi pregunta surge porque en la resolución de OpenFing se recomienda no hacer que el algoritmo sea recursivo, sin embargo en la solución propuesta se define un stack y se opera opera con él, por lo que entiendo que se está "emulando" la recursión.

En respuesta a Joaquín Sande González

Re: Práctico 9, ej2 parte 3

de Jorge Merlino -
Contesto solo la parte de la recursión. En general el kernel tiene disponible un stack muy pequeño (más o menos una página) por lo que no se pueden usar algoritmos recursivos sin correr alto riesgo de desbordar el stack. Usar un stack externo soluciona ese problema aunque hay que usarlo con un código iterativo.

Saludos