Предположим, что родительский вектор p
определен как список, где каждый элемент является указателем на индекс позиции родителя данного элемента в том же векторе.Тогда дочерние элементы каждого родителя можно найти как:
q) c:group p:0N 0 1 0 2
| ,0
0| 1 3
1| ,2
2| ,4
Если задано c
, каков эффективный способ выравнивания словаря детей c
обратно к родительскому вектору p
?
Очевидно, ungroup
не работает напрямую со словарями:
q) ungroup c
'type
Но мы можем разгруппировать таблицы:
q) {@[;`k] `v xasc ungroup ([]k:key x;v:value x)} c
0N 0 1 0 2
Есть ли более эффективное решение, как получить p
с учетомc
?