day6 python 学习笔记 树

【判断不为空】

if not s:
  print("empty")

【画一颗树】
手动画树

import numpy as np

class node:
    def _init_(self,value,left=None,right=None):
        self.value = value
        self.left = left
        self.right = right
        
class BTree(object):

    def __init__(self, root=0):
        self.root = root

a=node()
b=node()
c=node()
d=node()


a.value=10
a.left= b 
a.right=c

b.value=9
b.left=d


c.value=8
d.value=4

bt = BTree(a)


【create  一棵树】

class TreeNode(object):

    def __init__(self, left=0, right=0, data=0):
        self.left = left
        self.right = right
        self.data = data

class TreeNode(object):

    def __init__(self, left=0, right=0, data=0):
        self.left = left
        self.right = right
        self.data = data

           
class BTree(object):

    def __init__(self, root=0):
        self.root = root

    def is_empty(self):
        if self.root is 0:
            return True
        else:
            return False

    def create(self):
        temp = input('enter a value:')
        if temp is '#':
            return 0
        treenode = TreeNode(data=temp)
        if self.root is 0:
            self.root = treenode

        treenode.left = self.create()
        treenode.right = self.create()

【打印出画的树】



def creabinarytree(layer):
    if not isinstance(layer,int):
        print("please enter an integer")
    
    # ord('a')=97
    print("layer is ",0)
    val=int(input("please enter the root:\n"))
    
    value=[]
    value.append(val)

    for i in range(1,layer):
        print("layer is ",i)
        childrennumber=2**i
        for j in range(childrennumber):
            val=int(input("please enter an integer:\n"))
            value.append(val)

    # print a binary tree33
    temp=len(value)
    cc=2*temp
    index=0
    for l in range(layer+1c):
        node=int(2**(l-1))
        for i in range(node):
             print("*"*cc,value[index],"*"*cc,end='')
             index=index+1
        print('')
        cc=cc//2
creabinarytree(3)
layer is  0

please enter the root:
1
layer is  1

please enter an integer:
2

please enter an integer:
3
layer is  2

please enter an integer:
4

please enter an integer:
5

please enter an integer:
6

please enter an integer:
7

******* 1 *******
*** 2 ****** 3 ***
* 4 ** 5 ** 6 ** 7 *


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值