Hola, tengo una duda en este ejercicio, para la solución se usan 2 colas, yo lo hice de la siguiente manera:
PROCEDURE impresionParcial (A:ARBOL; k:CARDINAL);
VAR it:ARBOL;
BEGIN
WHILE (A<>NIL) AND (k>0) DO(*No hace nada si k=0 o el arbol es vacio*)
it:=A; (*"Me paro" en A e imprimo todos los hermanos de A*)
WHILE (it<>NIL) DO (*Se contempla el caso k=1, porque A^.sigHermano=NIL, por def*)
WriteCard(it^.dato);
IF (it^.sigHermano<>NIL) THEN (*Imprimo "," si corresponde*)
WriteString(",")
END;
it:=it^.sigHermano;
END;
k:=k-1; (*"Bajo" de nivel*)
A:=A^.primerHijo; (*"Paso" al siguiente nivel*)
END;
END impresionParcial;
Creo que funciona, es válida esta solución?
Gracias
Saludos