2011-02-22 26 views
2

我有一個對象,可以是其他對象的父對象或子對象。它是客戶的代表。它看起來像這樣Android - 以樹結構表示和遍歷數據的最佳方式

public class Site 
{ 
    public int SiteId; 
    public List<Site> Children; 
    public Site Parent; 
} 

Parent爲null,它是一個頂級或根對象。並非所有對象都有孩子。我們對網站的下線數量沒有限制。我們的應用程序是這樣設計的,用戶和其他數據綁定到特定的站點,無論它是樹中任何位置的根節點還是子節點。出於這個原因,我必須知道用戶正在使用的網站來撤回正確的數據。

我的問題是允許用戶遍歷此樹的最佳方式是什麼?有很多的節點,所以返回一切都不會被期望。而不是現在返回我的模型對象中的所有孩子,而是簡單地返回一個布爾值,指出該網站是否有孩子。然後,當用戶點擊該選項時,我的計劃是去找那個節點的孩子,並顯示他們的選擇。

我正在考慮使用ListView與大多數設置菜單類似的方式,如果它們是選項,則顯示箭頭。我也看了一下Menu,但我不確定最好的方法來做到這一點。

回答

0

樹的遍歷基本上歸結爲深度優先搜索或廣度優先搜索。然而,從你描述你的應用程序,這可能不是最好的方法。

我所看到的類似於您所描述的結構的一件事將列出當前查看節點的父項(根目錄)和子項目。如果您提供了更多關於如何使用此樹遍歷的信息,我可以嘗試進一步幫助您。

此外,上述方法僅適用於沒有循環的情況。