首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这个数据模型是列表还是树?

这个数据模型是列表还是树?
EN

Software Engineering用户
提问于 2015-07-16 05:49:50
回答 2查看 660关注 0票数 4

使用python语法和下面的环境图,老师教我们在这个图表中有11棵树(橙色边界),包括叶子。

它被教过这里

列表表示为一行标有索引的相邻框,每个元素一个.每个框要么包含一个原语值,要么指向一个复合值。例如:

代码语言:javascript
运行
复制
nested_list = [   [1, 2],    [],     [[3, False, None],[4, lambda : 5]]   ]

树要么是一个名为叶的值,要么是一个trees__序列。通常,在叶子上放置某种类型的限制。例如一棵数字树。例如:

代码语言:javascript
运行
复制
tree = [     [1, [2], 3, []],      [[4], [5,6]],       7    ]

我的问题是:

一般来说,一棵树能有异构类型的数据吗?例如:我可以说,abc = [1, 2, 3, 4, lamda: 5]一棵5片叶子的树吗?

注:目的是了解树是否可以具有异构类型的数据。

EN

回答 2

Software Engineering用户

发布于 2015-07-16 07:07:16

这在很大程度上取决于列表和树的定义。

从数学上讲,列表并不意味着什么,树只是一个图的特殊子集。

从你的问题推断,你的老师对树的定义是嵌套列表。在这种情况下,嵌套深度为0的列表仍然是树。所以

abc = 1,2,3,4

是棵树。

在本例中,listtree的子集。每一个列表都是一棵树,但不是每一棵树都是一个列表。如果您的操作仅在列表上工作,那么只能使用列表的实例作为参数,但当它们只是树时不能使用。

至少它在数学中是这样工作的。对于这个python的“伪示例”,树和列表之间并没有太大的区别。我相信你会感到困惑,因为你的老师只是使用Python结构作为定义,而不是用明确的数学术语来定义这些术语。

票数 8
EN

Software Engineering用户

发布于 2015-07-20 14:29:36

我认为您在结构中使用lambda表达式混淆了这个问题。表达式lambda:5既不是列表也不是数字。这是一种功能。所以你的例子中的数据结构不是一个数字树,因为其中一个叶子是一个函数而不是一个数字。

但是,不考虑lambda,表达式1,2,3,4是一个列表,也是根据您提供的树定义的树(因为它是一个树序列,其中每棵树都是叶)。这并不矛盾,因为根据您所提供的定义,任何列表也将是一棵树。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/289890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档