zoukankan      html  css  js  c++  java
  • 二叉树的深度优先遍历和广度优先遍历-Python

    # 二叉树系列
    class BinaryTree(object):
        def __init__(self, item):
            self.item = item
            self.left = None
            self.right = None
    
    def create_tree_data():
        a = BinaryTree(1)
        b = BinaryTree(2)
        c = BinaryTree(3)
        d = BinaryTree(4)
        e = BinaryTree(5)
        f = BinaryTree(6)
        g = BinaryTree(7)
    
        a.left = b
        a.right = e
        b.left = c
        b.right = d
        e.left = f
        e.right = g
        return a
    
    def xianxu_dfs(root):
        # 根左右,先访问根节点,再左右孩子
        print(root.item)
        if root.left:
            xianxu_dfs(root.left)
        if root.right:
            xianxu_dfs(root.right)
    
    def zhongxu_dfs(root):
        # 左右根,先访问左右孩子,再根节点
        if not root:
            return
        if root.left:
            zhongxu_dfs(root.left)
        print(root.item)
        if root.right:
            zhongxu_dfs(root.right)
    
    def houxu_dfs(root):
        if not root:
            return
        if root.left:
            houxu_dfs(root.left)
        if root.right:
            houxu_dfs(root.right)
        print(root.item)
    
    from queue import Queue
    def bfs(root):
        # 广度优先,逐层遍历,使用队列FIFO,存储层次数据
        q = Queue()
        q.put(root)
        while not q.empty():
            current_node = q.get()
            print(current_node.item)
            if current_node.left:
                q.put(current_node.left)
            if current_node.right:
                q.put(current_node.right)
    
    
    if __name__ == '__main__':
        head = create_tree_data()
        # xianxu_dfs(head)
        # zhongxu_dfs(head)
        # houxu_dfs(head)
        bfs(head)
    时刻记着自己要成为什么样的人!
  • 相关阅读:
    XML DOM介绍和例子
    关于IFRAME 自适应高度的研究
    UrlReWriter 使用经验小结
    ASP无限分类数据库版
    全国天气预报代码
    可输入的下拉框
    web2.0_RSS_.net读写
    ASP与存储过程[转帖]
    NetBox Asp Web服务器
    css里可以加表达式 :expression
  • 原文地址:https://www.cnblogs.com/demo-deng/p/14718769.html
Copyright © 2011-2022 走看看