【发布时间】:2018-05-27 14:54:57
【问题描述】:
我想知道如何在 Rust 中正确迭代包含在这样排列的数据结构中的所有结果:
struct Node {
id: i64,
nodes: Vec<Node>
}
在此结构中插入的记录具有多个级别的深度。比如:
{id: 1, nodes: [
{id: 2, nodes: [
{id: 3, nodes: []},
{id: 4, nodes: []},
{id: 5, nodes: [
{id: 6, nodes: []},
{id: 7, nodes: [
{id: 8, nodes: []},
{id: 9, nodes: []}
]}
]}
]}
]};
【问题讨论】:
-
您没有表现出任何种尝试解决您自己的问题。 Stack Overflow 不是人们为您编写代码的服务。预计您会表现出一些研究或努力。
-
但是我对 Rust 了解不多,先生。这就是我寻求帮助的原因。我知道迭代的基本方法是使用 .iter(),但它不会加深结构中的层次。我必须做一个递归函数,但现在类型处理对我来说变得复杂了。
-
我并没有要求为自己创建代码。我只是问什么是迭代多层次的最佳方式。该人可能只对诸如“使用此系统调用 X,或以 Y 方式结构,或使用 Z 或 W 递归执行”之类的东西做出反应。或者只是在互联网上指向一些文档或示例。
-
您甚至没有描述“正确”的含义。您可能需要阅读Breadth-first search 和Depth-first search。
-
“正确”基于语言最佳实践;现在,有了这个链接,你可以帮助我。谢谢。