我開發使用SQLite android的應用程序,我有一個樹狀結構,我在數據庫中表示,像這樣:如何從任何父節點的所有葉子節點在樹上
+------+------+-------+------+
|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'表示編譯ID,它就像一本書,節點是章節名稱(可能有子章節),葉子就像頁面或段落。這是我可以給出的最接近的例子。 – sprocket12