树的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)

猜你喜欢

转载自blog.csdn.net/zhangyu4863/article/details/80601256