Python中决策树的深度优先搜索和广度优先搜索实现方法

2023-04-14 00:00:00 深度 优先 广度

深度优先搜索(DFS)实现决策树:

  1. 定义节点类(可选):
class Node:
    def __init__(self, val, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right
  1. 构建决策树:
root = Node('pidancode.com', Node('编程问答', Node('算法训练', Node('数据结构', Node('图论算法')))))
  1. DFS搜索实现:
def dfs(node):
    if node:
        print(node.val)
        dfs(node.left)
        dfs(node.right)
  1. 调用DFS搜索:
dfs(root)

输出结果:

pidancode.com
编程问答
算法训练
数据结构
图论算法

广度优先搜索(BFS)实现决策树:

  1. 定义节点类(可选):
class Node:
    def __init__(self, val, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right
  1. 构建决策树:
root = Node('pidancode.com', Node('编程问答', Node('算法训练', Node('数据结构', Node('图论算法')))))
  1. BFS搜索实现:
def bfs(node):
    queue = [node]
    while queue:
        n = queue.pop(0)
        if n:
            print(n.val)
            queue.append(n.left)
            queue.append(n.right)
  1. 调用BFS搜索:
bfs(root)

输出结果:

pidancode.com
编程问答
算法训练
数据结构
图论算法

相关文章