Per verificare che il nodo di un grafo diretto sia un pozzo universale, l’algoritmo deve controllare che:

  • non ci siano archi uscenti,
  • formi un arco entrante con ogni altro nodo del grafo.

Quindi, usando le matrici di appartenenza bisogna controllare che:

  • la riga che si riferisce al nodo abbia tutti zeri,
  • la colonna che si riferisce al nodo abbia tutti 1 (tranne il nodo considerato).

La complessità temporale sarà .

def test_pozzo_universale(nodo, matrice):
	numero_righe = len(matrice)
	
	for colonna in range(numero_righe):
		if matrice[nodo][colonna] == 1:
			return False
	
	for riga in range(numero_colonne): # la matrice è quadrata quindi numero di colonne = numero di righe
		if riga != nodo and matrice[riga][nodo] == 0:
			return False
	
	return True