Я разрабатываю приложение в Android с помощью Sqlite, у меня есть древовидная структура, которую я представляю в БД, как так:Как получить все узлы листа из любого родительского узла в дереве
+------+------+-------+------+
|comp_id nodeId parent| text |
|------|------|-------|------|
| 146 | 1 | -1 | Top |
| | | | |
| 146 | 2 | 1 | Ch1 |
| | | | |
| 146 | 3 | 2 | Leaf |
| | | | |
| ... | | | |
| 152 | 1 | -1 | Top |
+------+------+-------+------+
Я, имеющий сложность кодирования алгоритма в автономном методе, таком как ниже, чтобы вернуть мне все листы под любым узлом.
Node
{
public Node[] getAllLeafs()
{
// traverse all the way down the tree
// and get only leafs
}
}
Если есть способ сделать это более легко, изменяя свою структуру таблицы и/или с использованием SQL, пожалуйста, отметить, что, как я могу сделать это.
У вас есть два узла с одним и тем же 'nodeId'. В чем смысл 'comp_id'? Покажите пример желаемого результата! –
@CL. 'comp_id' означает идентификатор компиляции, его как книгу и узлы - это имена глав (которые могут иметь подглавы), а листы - как страницы или абзацы. Это самый близкий пример, который я могу дать. – sprocket12