treectrl遍历
来源:互联网 发布:淘宝怎么延长收货 编辑:程序博客网 时间:2024/04/29 09:06
树是一种十分重要的数据结构。在程序设计中,我们经常用树来组织数据。对于树的遍历也是一种常规的运算,下面提供了两个算法。前面一个只是简单的遍历了所有的结点,后面一个则可以根据传入条件返回相应的结点。
/*
* 功能:遍历CTreeCtrl所有结点
* 参数:tree-要遍历的CTreeCtrl控件变量、hItem-开始变量的根结点(如果要变量整棵树,则:hItem = tree.GetRootItem())
* 返值:void
*/
void TravelItem(CTreeCtrl& tree, HTREEITEM hItem)
{
HTREEITEM hCurItem = tree.GetChildItem(hItem);
HTREEITEM hNextItem;
while(hCurItem)
{
OutputDebugString(tree.GetItemText(hCurItem)); // 输出结点文本
hNextItem = hCurItem;
TravelItem(tree, hNextItem);
hCurItem = tree.GetNextSiblingItem(hCurItem);
}
}
/*
* 功能:返回指定的树结点
* 参数:tree-要遍历的CTreeCtrl控件变量、item-开始变量的根结点(如果要变量整棵树,则:hItem = tree.GetRootItem())、
strText-结点的ItemText值(返回条件)
* 返值:指定结点的句柄(如果没有符合查找条件的结点,返回NULL)
*/
HTREEITEM FindItem(CTreeCtrl& tree, HTREEITEM item, CString strText)
{
HTREEITEM hFind;
if(item == NULL)
return NULL;
while(item != NULL)
{
if(tree.GetItemText(item) == strText)
return item;
if(tree.ItemHasChildren(item))
{
item = tree.GetChildItem(item);
hFind = FindItem(tree, item, strText);
if(hFind)
{
return hFind;
}
else
{
item= tree.GetNextSiblingItem(tree.GetParentItem(item));
}
}
else
{
item = tree.GetNextSiblingItem(item);
if(item == NULL)
return NULL;
}
}
return item;
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/smecf/archive/2008/07/24/2707028.aspx
- treectrl遍历
- treectrl遍历
- mfc TreeCtrl 遍历
- TreeCtrl
- 控件--TreeCtrl
- treectrl入门
- treectrl入门
- vc treectrl
- wxpython treectrl
- TreeCtrl的用法
- TreeCtrl的用法!
- TreeCtrl的用法2!
- 100916 中软实训 之 TreeCtrl
- Treectrl de 用法
- treectrl的使用
- 树形控件TreeCtrl
- MFC使用TreeCtrl控件
- MFC控件之TreeCtrl
- wince常见问题解答
- wince驱动和网络结构(也有windows的)
- 验证数字的一些正则表达式
- How does Windows Embedded CE 6.0 Start
- 删除MSSQL中危险的存储过程
- treectrl遍历
- PHP+Ajax做简单的文本抽象处理
- makefile
- 怎么做.css下拉菜单
- 动态网页和静态网页
- 人人网/开心网开放平台Wiki、
- MS SQL Server 2000 数据库使用备份还原造成dbo登录名丢失解决法
- js模拟键盘
- CUDA, 用于大量数据的超级运算:第八节