使用python语法和下面的环境图,老师教我们在这个图表中有11棵树(橙色边界),包括叶子。
它被教过这里,
列表表示为一行标有索引的相邻框,每个元素一个.每个框要么包含一个原语值,要么指向一个复合值。例如:
nested_list = [ [1, 2], [], [[3, False, None],[4, lambda : 5]] ]
树要么是一个名为叶的值,要么是一个trees__序列。通常,在叶子上放置某种类型的限制。例如一棵数字树。例如:
tree = [ [1, [2], 3, []], [[4], [5,6]], 7 ]
我的问题是:
一般来说,一棵树能有异构类型的数据吗?例如:我可以说,abc = [1, 2, 3, 4, lamda: 5]
一棵5片叶子的树吗?
注:目的是了解树是否可以具有异构类型的数据。
发布于 2015-07-16 07:07:16
这在很大程度上取决于列表和树的定义。
从数学上讲,列表并不意味着什么,树只是一个图的特殊子集。
从你的问题推断,你的老师对树的定义是嵌套列表。在这种情况下,嵌套深度为0的列表仍然是树。所以
abc = 1,2,3,4
是棵树。
在本例中,list
是tree
的子集。每一个列表都是一棵树,但不是每一棵树都是一个列表。如果您的操作仅在列表上工作,那么只能使用列表的实例作为参数,但当它们只是树时不能使用。
至少它在数学中是这样工作的。对于这个python的“伪示例”,树和列表之间并没有太大的区别。我相信你会感到困惑,因为你的老师只是使用Python结构作为定义,而不是用明确的数学术语来定义这些术语。
发布于 2015-07-20 14:29:36
我认为您在结构中使用lambda表达式混淆了这个问题。表达式lambda:5
既不是列表也不是数字。这是一种功能。所以你的例子中的数据结构不是一个数字树,因为其中一个叶子是一个函数而不是一个数字。
但是,不考虑lambda,表达式1,2,3,4是一个列表,也是根据您提供的树定义的树(因为它是一个树序列,其中每棵树都是叶)。这并不矛盾,因为根据您所提供的定义,任何列表也将是一棵树。
https://softwareengineering.stackexchange.com/questions/289890
复制相似问题