while (temp && !trovato)

ripete finché temp è un puntatore valido (non NULL) e trovato è false


while(temp->punt)

ripete finché temp->punt è un puntatore valido (non NULL)