Data Structures and Algorithms in Python
Miriam Antona
Software engineer
def in_order(self, current_node):
if current_node:
self.in_order(current_node.left_child)
print(current_node.data)
self.in_order(current_node.right_child)
my_tree.in_order(my_tree.root)
10
20
22
65
68
70
75
def pre_order(self, current_node):
if current_node:
print(current_node.data)
self.pre_order(current_node.left_child)
self.pre_order(current_node.right_child)
my_tree.pre_order(my_tree.root)
65
20
10
22
70
68
75
Order: Left -> Right -> Current
Complexity: $O(n)$
in-order
pre-order
post-order
def dfs(visited_vertices, graph, current_vertex):
if current_vertex not in visited_vertices:
print(current_vertex)
visited_vertices.add(current_vertex)
for adjacent_vertex in graph[current_vertex]:
dfs(visited_vertices, graph, adjacent_vertex)
Data Structures and Algorithms in Python