以下是一个使用深度优先搜索(DFS)算法进行图搜索的示例代码:
# 定义图的类
class Graph:
def __init__(self):
self.graph = {}
# 添加边
def add_edge(self, u, v):
if u not in self.graph:
self.graph[u] = []
self.graph[u].append(v)
# DFS搜索
def dfs(self, start, pattern):
visited = set()
self._dfs_helper(start, visited, pattern)
def _dfs_helper(self, vertex, visited, pattern):
visited.add(vertex)
print(vertex)
if pattern == vertex:
print("找到匹配模式")
if vertex in self.graph:
for neighbor in self.graph[vertex]:
if neighbor not in visited:
self._dfs_helper(neighbor, visited, pattern)
# 创建图对象
graph = Graph()
# 添加边
graph.add_edge(1, 2)
graph.add_edge(1, 3)
graph.add_edge(2, 4)
graph.add_edge(3, 5)
graph.add_edge(4, 5)
# 进行DFS搜索
graph.dfs(1, 5)
在这个示例中,我们创建了一个Graph
类来表示图,并使用add_edge
方法添加边。然后,我们实现了一个dfs
方法,用于执行深度优先搜索。dfs
方法接受一个起始顶点和一个搜索模式作为参数,并调用_dfs_helper
方法进行实际的搜索。_dfs_helper
方法使用递归的方式遍历图中的顶点,并在找到匹配模式时输出结果。
在示例中,我们创建了一个包含5个顶点和4条边的图,并使用dfs
方法从顶点1开始搜索匹配模式为5的路径。搜索过程中,我们会输出经过的顶点,并在找到匹配模式时输出"找到匹配模式"的提示。
请注意,这只是一个简单的示例代码,实际应用中可能需要根据具体需求进行适当的修改和扩展。
下一篇:暗模式开关CSS未显示