Hola, me surgieron un par de dudas haciendo examenes: Cuando utilizar un "iterador"? Crei que lo entendía bien, pero por ejemplo en el examen de Febrero 2010: PROCEDURE Dif (A, B : ConjCoord) : ConjCoord;
VAR
res, iterador: ConjCoord;
BEGIN
res := Vacio();
iterador := A;
WHILE NOT EsVacio(iterador) DO
IF NOT Pertenece(iterador^.c, B) THEN
res := Insertar(iterador^.c, res);
END;
Iterador := iterador^.sig;
END;
RETURN res;
END Dif;
Por que usa un "iterador" y no directamente el conjCoord A ??? Yo usaba un "iterador" solo si el puntero tenía VAR en el encabezado (pasados por referencia) o si necesitaba que el original se mantubiera apuntando al primer elemento porque necesitaba, por ejemplo, recorrer la lista desde el principio más de una vez o agregar al principio y quitar elementos del final. Agradezco me aclaren la duda, sino, pongo siempre un iterador por las dudas, de ultima mal no está. Pero me gustaria saber cuando es innecesario. Gracias saludos
Yo creo que está bien lo que decis tú.
Para mi a veces es útil utilizar una variable como iterador para que quede más claro. Pero por lo que decís arriba funciona bien utilizando directamente la referencia al conjunto A.