# 5 X 5 adj = np.zeros((25,25)) for i in range(0, 25): u = i - 5 d = i + 5 l = i - 1 r = i + 1 if 0 < u: adj[i][u] = 1 if d < 25: adj[i][d] = 1 if 0 <= l and (l % 5) != 4: adj[i][l] = 1 if r < 25 and (r % 5) != 0: adj[i][r] = 1 print (adj) G = nx.from_numpy_matrix(np.array(adj)) nx.draw(G, with_labels=True) plt.axis('equal') plt.show()
# DFS visualization adj = np.zeros((25,25)) adjTrail = np.zeros((25,25)) visited = np.zeros(25) def dfs(v): global adjTrail global visited visited[v] = 1 for i in range(0, 25): if adj[v][i] andnot visited[i]: adjTrail[v][i] = 1 adjTrail[i][v] = 1 dfs(i) for i in range(0, 25): u = i - 5 d = i + 5 l = i - 1 r = i + 1 if 0 < u: adj[i][u] = 1 if d < 25: adj[i][d] = 1 if 0 <= l and (l % 5) != 4: adj[i][l] = 1 if r < 25 and (r % 5) != 0: adj[i][l] = 1 dfs(0) G = nx.from_numpy_matrix(np.array(adj)) pos = nx.spring_layout(G) trail_edges = [(u, v) for (u, v, d) in G.edges(data=True) if adjTrail[u][v] == 1] null_edges = [(u, v) for (u, v, d) in G.edges(data=True) if adjTrail[u][v] == 0] # nodes nx.draw_networkx_nodes(G, pos) # edges nx.draw_networkx_edges(G, pos, edgelist=trail_edges) nx.draw_networkx_edges(G, pos, edgelist=null_edges, edge_color="lightgrey", style="dashed") # labels nx.draw_networkx_labels(G, pos, font_family="sans-serif") plt.axis('equal') plt.show()