美文网首页
算法:使用Python将list转换为树

算法:使用Python将list转换为树

作者: 马克约瑟 | 来源:发表于2019-12-19 09:35 被阅读0次

输入如下特征的列表,基本类型的值都是正整数,列表项都是树的路径,现在需要将该列表项转换为树,转换时应设置树的根,根的值为0

列表为:
[[1,2,3,4],
[1,2,3,5],
[1,2,6],
[7]]

树的格式为:
        0
       / \
      1   7
     / \
    2   6
   /
  3
 / \
4   5

Python代码如下:

class Tree:
    def __init__(self, value, parent=None):
        if isinstance(value, list):
            self.value = 0
            self.parent = None
            self.children = []
            # 获取列表里每个路径
            for path in value:
                # 构建父结点和孩子结点
                parent = self
                for i,v in enumerate(path):
                    node = None
                    for child in parent.children:
                        if v == child.getValue():
                            node = child
                            break
                    if node == None:
                        node = Tree(v, parent)
                        parent.children.append(node)
                    parent = node
        else:
            # 该逻辑一般只由此构造器执行,而不由外部创建对象时直接执行
            self.value = value
            self.parent = parent
            self.children = []
    
    def getValue(self):
        """获取结点值"""
        return self.value
    
    def getChildren(self):
        """获取孩子结点"""
        return self.children

    def getParent(self):
        """获取父结点"""
        return self.parent

相关文章

  • 算法:使用Python将list转换为树

    输入如下特征的列表,基本类型的值都是正整数,列表项都是树的路径,现在需要将该列表项转换为树,转换时应设置树的根,根...

  • 如何解决python的list转换为set时自动排序的问题

    相信很多童鞋都是使用list转换为set达到去掉重复元素的目的,但是打印时会发现,直接将list转换为set去...

  • Python算法

    注:采转归档,自己学习查询使用 Python算法:基础知识Python算法:Counting 101Python算...

  • Json

    json.loads() :将字符串转换为Python数据类型json.dumps() :将Python数据类型转...

  • 知识点

    list方法将字符串转换为list ,join 方法将list转换为str8D1777D2-3460-4EA2-8...

  • 机器学习实战——回归树

    CART算法 — DONE 回归与模型树 — DONE 树剪枝算法 — DONE Python中GUI的使用 【C...

  • Java中list、set与array之间的转换

    当list中的数据类型都一致时(不一致也可以,不能强转)可以将list转换为数组: 在转换为其它类型的数组时需要进...

  • 使用python将csv文件转换为html(转)

    代码转自:Python3程序开发指南(第二版)稍有改动 data.csv "country","2000","20...

  • ASCII转换

    将ASCII字符转换为对应的数值,使用ord函数:ord('a') -> 65 反之,使用chr函数,将数值转...

  • 2021-10-12

    算法第一题 遇到的问题 Python的使用 Python中 一个空list 【】 添加 元素 ,直接添加 (app...

网友评论

      本文标题:算法:使用Python将list转换为树

      本文链接:https://www.haomeiwen.com/subject/rltmnctx.html