Входы приведены в формате ниже: -построить JSON объект
характеризуе-> характеризуе-> СИМ -> ...... любое число раз = INTEGER
Здесь CHAR - любой символ, который представляет Ключ. 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
}
}
Мой алгоритм: -
- Я использовал Linked структуру данных списка для создания этого рисунка.
- Используйте два массива, узлы и лес, каждый индекс представляет один символ, означает, что 0 представляет a, .... 25 представляет z.
- Узлы содержат все ссылки из одной клавиши в другую, если она заканчивается, то она содержит массив целых чисел, который показывает значения.
- Лес представляет собой все корни разных деревьев, для вышеуказанного случая,
a
иc
являются корнями для двух деревьев. - Выполните все ссылки и обновите узлы и левый массив.
- Наконец, в конце, итерации через массив леса, и если это правда, создайте дерево, используя это как корень.
Это мой алгоритм, но это неверно. Пожалуйста, помогите мне в исправлении моего алгоритма или разработке нового.
Может помочь, если вы разместите структуры данных 'Forest' и' Node' и напишите algo по крайней мере в psedo-коде. –
Лес - это просто массив Bool, каждый из которых представляет один символ от a до z.и Nodes - это массив указателя на dataNode, где dataNode содержит один указатель, который указывает на другой dataNode, а также содержит целые числа (в качестве значения). Это структуры данных, которые я использовал в моем алгоритме. – devsda