如何知道当前结点在树形结构中属于第几级?谢谢。见内
如:
parent
son1
Grandson1
Grandson2
son2
parent为0级,Son为1级,Grandson为2级。
问题点数:20、回复次数:7Top
1 楼coolaka(Snow)回复于 2004-07-02 10:48:58 得分 2
可以从parent遍历到要找的节点,每深入一层就把层数变量加1Top
2 楼findcaiyzh(秋心)回复于 2004-07-02 11:05:15 得分 3
从当前节点GetParentItem(),指到取到和根结点相同GetRootItem。
就可以计算出深度了。Top
3 楼gufengduyu(孤独的呆呆龙)回复于 2004-07-02 11:09:30 得分 3
你应该自己定义变量来记录层数,每插入一个节点,就将父节点的层数加一,通过SetItemData记录在节点信息中Top
4 楼findcaiyzh(秋心)回复于 2004-07-02 11:12:23 得分 3
GetItemDeep(HTREEITEM hItem)
{
HTREEITEM hRoot = GetRootItem();
if (hItem == hRoot)
return 0;
int nDeep = 1;
HTREEITEM hParent;
hPrent = GetParentItem(hItem);
while(hParent != hRoot)
{
nDeep ++;
hParent = GetParentItem(hParent);
}
}Top
5 楼qiuxiangyong(qxy)回复于 2004-07-02 11:12:46 得分 3
一级一级的上溯吧,找到TVI_ROOT,就是了Top
6 楼findcaiyzh(秋心)回复于 2004-07-02 11:13:04 得分 3
忘记return nDeep了。Top
7 楼hopen(哈雷)回复于 2004-07-02 11:19:52 得分 3
vc中树没有索引
在vb中可以将层数存储到索引中,A表示第一层,B表示第二层...
除了上溯外,可以用数组存储和当前节点对应的索引
遍历数组就可以了
Top




