树的python实现

# -*- coding: UTF-8 -*-


class SubtreeIndexError(ValueError):
    pass


def tree(data, *subtrees):
    return [data].extend(subtrees)


def is_empty(tree):
    return tree is None


def root(tree):
    return tree[0]


def subtree(tree, i):
    if i < 1 or i > len(tree):
        raise SubtreeIndexError
    return tree[i + 1]


def set_root(tree, data):
    tree[0] = data


def set_subtree(self, i, subtree):
    if i < 1 or i > len(tree):
        raise SubtreeIndexError
    tree[i + 1] = subtree


class TreeNode:
    def __init__(self, data, subs=[]):
        self._data = data
        self._subtrees = list(subs)

    def __str__(self):  # 用于显示和输出
        return "[TreeNode {0} {1}]".format(self._data, 
                                           self._subtrees)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值