我正在从服务器接收一个json对象,其中包含带有嵌套元素和n个层的树形菜单数据。我需要这样才能深入到他们可能有多少子元素。
有没有一种使用Dust.js模板递归遍历对象的子元素的方法?
这方面的一个例子是:
{#assignment}
{#childAssignment}
{#nChildAssignment}
//etc, etc, etc into the dark pits of mordor
{/nChildAssignment}
{/childAssignemnt}
{/assignment}
假设你有一个树形结构,如下所示:
a [Level 0]
/ | \
b c d [Level 1]
/ \ |
e f g [Level 2]
| / \
h i j [Level 3]
我已经将其表示在数据库中,如下所示:
node parent
------------
a null
b a
c a
d a
[...]
h f
i g
我想写一个函数,给定一个级别,它将返回该级别的所有节点及其父节点。
例如:
f(0) =&g
我的任务是编写一个计算二叉树大小的函数。这是树形结构的实现:
datatype 'a bin_tree =
Leaf of 'a
| Node of 'a bin_tree (* left tree *)
* int (* size of left tree *)
* int (* size of right tree *)
* 'a bin_tree (* right tree *)
我从我的教授那里得到了这个模板:
fun get
我正在尝试实现一个在二叉树中查找给定节点的父节点的函数,但该函数总是返回根节点。我不知道如何让它工作。我已经试了好几天了。
Tree* NodeParent(Tree* a, char c)
{
Tree *parent = a;
if (!EmptyTree(a))
{
if ((!EmptyTree(a->Left) && info(a->Left) == c)
|| (!EmptyTree(a->Right) && info(a->Right) == c))
写完后,我决定把钱放在嘴边,并开始将我以前的一个项目转换为使用recursion-schemes。
所讨论的数据结构是一个。请查看使用和递归的实现。
这基本上是一种直截了当的转换,大意是:
data KDTree v a = Node a (Node v a) (Node v a) | Leaf v a
至
data KDTreeF v a f = NodeF a f f | Leaf v a
现在,在对整个shebang进行基准测试之后,我发现KDTreeF版本大约比普通版本()慢两倍于。
仅仅是附加的Fix包装让我在这里慢下来了吗?我能做些什么来对付这件事吗?
注意事项:
目前,这是专