another dfs visual version
This commit is contained in:
parent
1085220b67
commit
39684289b0
|
@ -3,33 +3,27 @@ from manim import *
|
||||||
|
|
||||||
class Main(Scene):
|
class Main(Scene):
|
||||||
def construct(self):
|
def construct(self):
|
||||||
# change
|
|
||||||
adj_list = [[1, 2], [0, 3], [0, 3], [1, 2, 4], [3]]
|
adj_list = [[1, 2], [0, 3], [0, 3], [1, 2, 4], [3]]
|
||||||
vertices = [v for v, _ in enumerate(adj_list)]
|
|
||||||
edges = [(v, u) for v, neighs in enumerate(adj_list) for u in neighs]
|
|
||||||
|
|
||||||
adj_vis = Graph(vertices, edges, labels=True, layout='spring', vertex_config={"fill_color": WHITE, "fill_opacity": 0.5})
|
|
||||||
|
|
||||||
self.play(Create(adj_vis))
|
|
||||||
self.wait()
|
|
||||||
|
|
||||||
visited = [False for _ in adj_list]
|
visited = [False for _ in adj_list]
|
||||||
|
|
||||||
print(adj_vis[0])
|
|
||||||
|
|
||||||
def dfs(v):
|
def dfs(v):
|
||||||
self.play(Indicate(adj_vis[v]))
|
|
||||||
if visited[v]:
|
if visited[v]:
|
||||||
return
|
return
|
||||||
|
|
||||||
visited[v] = True
|
visited[v] = True
|
||||||
self.play(ApplyMethod(adj_vis[v].set_opacity, 1.0))
|
|
||||||
|
|
||||||
for u in adj_list[v]:
|
for u in adj_list[v]:
|
||||||
self.play(Indicate(adj_vis.edges[(v, u)]), Indicate(adj_vis.edges[(u, v)]))
|
|
||||||
dfs(u)
|
dfs(u)
|
||||||
|
|
||||||
|
|
||||||
self.play(ApplyMethod(adj_vis[v].set_color, BLUE))
|
|
||||||
|
|
||||||
dfs(0)
|
dfs(0)
|
||||||
|
|
||||||
|
|
||||||
|
vertices = [v for v, _ in enumerate(adj_list)]
|
||||||
|
edges = [(v, u) for v, neighs in enumerate(adj_list) for u in neighs]
|
||||||
|
adj_vis = Graph(vertices, edges, labels=True, layout='spring').move_to(3*LEFT)
|
||||||
|
code = Code(file_name="dfs-manim.py", language="python").move_to(3*RIGHT).scale(0.5)
|
||||||
|
|
||||||
|
#self.play(Create(adj_vis), Create(code))
|
||||||
|
#self.wait()
|
||||||
|
self.add(adj_vis, code)
|
||||||
|
|
Loading…
Reference in New Issue