输入如下格式给出: -算法构建JSON对象
煤焦>煤焦> CHAR - > ......任何数量的次= INTEGER
这里,CHAR - 任何代表Key的字符。 INTEGER - 表示此关系值的任何整数值。
有很多这样的序列给我们。我们必须为此制作JSON格式。
例子: -
a->b = 12
a->b = 20
a->c->d = 190
a->d = 300
a->c->e = 90
c = 18
输出: -
{
a : {
b :[12, 20],
c : {
d : [190]
e : [90]
}
d : [300]
}
c : [18]
}
错案
如果任意键具有价值,它会指向任何其他键,那么它应该不可能的,例如:
a : {
[15],
d : {
// something here
}
}
我的算法: -
- 我用链表数据结构建立这种模式。
- 使用两个数组,Nodes和Forest,每个索引代表一个字符,意味着0代表a,.... 25代表z。
- 节点包含从一个键到另一个键的所有链接,如果它结束,则它包含显示值的整数数组。
- 森林代表了不同树木的所有根,对于上述情况,
a
和c
是两棵树的根。 - 执行所有链接并更新节点,并将两个森林都布置成阵列。
- 最后在最后,遍历Forest数组,如果它真的使用这个作为根创建一棵树。
这是我的算法,但它不正确。请帮我纠正我的算法或开发新算法。
如果你发布了'Forest'和'Node'数据结构并且至少在psedo-code中写了算法,可能会有所帮助。 –
森林只是一个Bool数组,其中每个代表一个字符形成a到z。Nodes是指向dataNode的指针数组,其中dataNode包含一个指向另一个数据节点的指针,并且还包含整数(作为值)。这些是我在算法中使用的数据结构。 – devsda