• 二叉树


     1 class Node(object):
     2     def __init__(self,sName):
     3         self._lChildren = []
     4         self.sName = sName
     5     def __repr__(self):
     6         return "<Node '{}'>".format(self.sName)
     7     def append(self,*args,**kwargs):
     8         self._lChildren.append(*args,**kwargs)
     9     #深度遍历
    10     def print_all_1(self):
    11         print(self)
    12         for oChild in self._lChildren:
    13             oChild.print_all_1()
    14     #广度遍历
    15     def print_all_2(self):
    16         def gen(o):
    17             lAll = [o,]
    18             while lAll:
    19                 oNext = lAll.pop(0)
    20                 lAll.extend(oNext._lChildren)
    21                 yield oNext
    22         for oNode in gen(self):
    23             print(oNode)
    24 
    25 oRoot = Node("root")
    26 oChild1 = Node("child1")
    27 oChild2 = Node("child2")
    28 oChild3 = Node("child3")
    29 oChild4 = Node("child4")
    30 oChild5 = Node("child5")
    31 oChild6 = Node("child6")
    32 oChild7 = Node("child7")
    33 oChild8 = Node("child8")
    34 oChild9 = Node("child9")
    35 oChild10 = Node("child10")
    36 
    37 #向二叉树中加入节点
    38 oRoot.append(oChild1)
    39 oRoot.append(oChild2)
    40 oRoot.append(oChild3)
    41 oChild1.append(oChild4)
    42 oChild1.append(oChild5)
    43 oChild2.append(oChild6)
    44 oChild4.append(oChild7)
    45 oChild3.append(oChild8)
    46 oChild3.append(oChild9)
    47 oChild6.append(oChild10)
    48 #深度优先
    49 oRoot.print_all_1()
    50 #广度优先
    51 oRoot.print_all_2()


  • 相关阅读:
    FILE
    基础知识const/typedef/函数指针/回调函数
    strchr
    ftell
    rewind
    fread
    poj 2309BST解题报告
    hdoj 4004The Frog's Games解题报告
    哈理工oj 1353LCM与数对解题报告
    poj 2453An Easy Problem解题报告
  • 原文地址:https://www.cnblogs.com/cx59244405/p/8471518.html
Copyright © 2020-2023  润新知