python 实现树结构的打印

class TreeNode:
    def __init__(self,value):
        self.children = []
        self.value = value

    def add_child(self,*child):
        self.children+=child

    def show(self,layer):
        print  "  "*layer+self.value
        map(lambda child:child.show(layer+1),self.children)

def main():
    a1 = TreeNode("A-1")
    b1 = TreeNode("B-1")
    b2 = TreeNode("B-2")
    c1 = TreeNode("C-1")
    d1 = TreeNode("D-1")
    a1.add_child(b1,b2)
    b1.add_child(c1,TreeNode("C-2"))
    b2.add_child(TreeNode("C-3"),TreeNode("C-4"))
    c1.add_child(d1)
    d1.add_child(TreeNode("E-1"),TreeNode("E-2"))
    a1.show(0)
if __name__=="__main__":main()

来源于网络,http://www.cnblogs.com/wangfupeng1988/archive/2011/04/12/2013860.html

打印效果如下:

时间: 2024-10-16 21:52:36

python 实现树结构的打印的相关文章

python练习题:循环打印嵌套列表

好久没写博文了,添加一个练习题,选自<head_first_python>~~ python列表:以中括号开始和结束"[]":列表项以逗号","分隔开,使用赋值操作符"="赋予一个标识符.如: movies=["the holy",1975,"terry jones",91,["graham",["michael","john",&qu

python 多线程实现循环打印 abc

python 多线程实现循环打印 abc 好久没写过python了, 想自己实践一下把 非阻塞版 import threading import time def print_a(): global value global lock global stop_flag while stop_flag: while True: if value == 0 or value == 3: break lock.acquire() value = 1 time.sleep(1) print("aaa&q

python 小程序,打印数字

要求如下: 指定一个数字 x ,然后打印 1到x 的所有数字,并问是否继续打印,否退出程序,是就继续.再指定一个数字 y ,如果 y> x 就显示 x+1 到 y 的所有数字,y <= x 提示y 太小了,让用户重新指定y 1 #!/usr/bin/python 2 # -*- coding=UTF-8 -*- 3 4 x=0 5 while x<1000: 6 num = input('请输入一个数字:') 7 if num > x: 8 for i in range(num-x

python 实现树结构

简述: 研究  MCTS 过程中, 需要用到树结构.  baidu  google 了一番, 找不到自己能满足自己的库或代码参考,只好再造个轮子出来 我造的树用来下五子棋 和 围棋用的,   有其它不同的应用场合, 那就需要在此基础上改造了. 本树的特点:1. 支持多子节点   ( 网络上很多代码都是二叉树,不符合我的需求 )2. 支持树的存储 和 读取, 网上很少看到. 正文:下面按照 应用场景, 数据结构和接口 ,  代码, 三个部分 自上向下说明. 应用场景: 一: 画一个根节点, 再加三

离散数学——python实现真值表和打印主范式

最近用python实现了真值表,经过有点儿曲折,刚开始没考虑优先级,直到前天才发现这个问题(离散数学没学好啊),用栈改了一下.话说python就是强,把列表类型当栈用,直接调用列表的pop()和append()非常方便,废话少说上代码(命令行版). 首先是导入外部库和定义函数 #导入正则表达式re库,用来从字符串中提取信息 import re #prettytable库帮我们打印出漂亮的表格 from prettytable import PrettyTable #过滤掉( def filter

Python小技巧:打印出来的文本文档中间有空格

问题描述: 在file.txt中存了内容如下 AAAAAA BBBBBB CCCCCC 然后采用python显示,发现显示出来的是这样的 A A A A A A B B B B B B C C C C C C Why? Code如下 本意是想在文本文档中寻找某一行(CCC)的,但是一直都显示没有这一行,奇怪了 ''' 遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子 ''' import io

selenium python (五)打印信息及设置等待时间

#!/usr/bin/python# -*- coding: utf-8 -*-__author__ = 'zuoanvip' #一般情况下我们要验证打开的页面是否正确,可通过网页的Title和Current_URL来验证 from selenium import  webdriverdriver = webdriver.Firefox()driver.get('http://www.baidu.com') #获取当前的网页标题driver.title #获取当前的页面URLdriver.cur

Python之变量和打印

#coding:utf-8name = 'Zed A. Shaw'age = 8.123 # not a lieheight = 74 # inchesweight = 180 # lbseyes = 'Blue'teeth = 'White'hair = 'Brown' print "His name is %s" %name#这里可以将常量也以这种方式打印出来#格式化字符数字宽度为10,不够前面用0代替,精度为2print "His age is %010.2f"

Python实现不同格式打印九九乘法表

前言:最近在学习Python,学习资源有慕课网上的视频教程.菜鸟教程以及Python官方文档tutorial.虽然了解了Python的基本语法,但是还没有真正意义上输出自己写的代码.代码小白,之前仅学过C,代码上的逻辑问题总是理不清楚,加上性格有点急躁,以前总是半途而废,所以编程等级为渣.现在虽然刚开始做测试工作,但是不希望自己的工作仅限于功能测试,也希望能接触到性能测试甚至白盒测试这样对编程有一定要求的工作.由于目前测试的项目性质属于web测试,所以从现在的工作入手,开始学习Python以及数