Bir graf tek parça olmak zorunda değildir. Birbirine bağlı düğümlerin her grubuna bileşen denir; ızgarada bunlar adalardır. Kaç ada olduğunu saymak için bütün hücreleri sırayla gezersin: görülmemiş bir kara hücresine rastladığında yeni bir ada bulmuşsundur; oradan bir gezinti başlatıp adanın tamamını işaretlersin.
islands = 0seen = set()for r in range(len(grid)):for c in range(len(grid[0])):if grid[r][c] == "." and (r, c) not in seen:islands += 1reachable(grid, r, c, seen)return islands
Adanın büyüklüğünü istiyorsan gezintinin boyadığı hücreleri sayarsın: gezintiden önceki ve sonraki küme boylarının farkı ya da gezintinin döndürdüğü bir sayı. İç içe döngülere rağmen toplam iş hücre sayısı kadardır, çünkü her hücre yalnızca bir kez boyanır.