Нужно массив конвертировать в дерево объектов вида
[{
cid : 1,
childItems : [
{
cid: 2,
childItems : [{cid: 3}]
}
]
}]
?
Если да — то просто обходите свой массив, строя дерево следующим образом:
Отдельного вести массив объектов, соответствующих "узлам".
При встрече нового узла в массиве смотреть на его parent и, если он не null, то вставлять текущий элемент в потомки parent'у (получать его из массива), иначе — в корневой массив.