查找的方式
-基于数据元素值的查找
·GTreeNode<T>* find(const T& value) const
-基于结点的查找
·GTreeNode<T>* find(TreeNode<T>* node) const
基于数据元素值的查找
-定义功能:find(node,value)
·在node为根节点的树中查找value所在的结点
GTreeNode<T>* find(GTreeNode<T>* node,const T& value) const
{
GTreeNode<T>* ret = NULL;
if(node != NULL)
{
if(node->value == value)
{
return node;
}
else
{
for(node->child.move(0); !node->child.end() && (ret == NULL);node->child.next())
{
ret = find(node->child.current(),value);
}
}
}
}
基于结点的查找
-定义功能:find(node,obj)
·在node为根节点的树中查找是否存在obj结点
GTreeNode<T>* find(GTreeNode<T>* node,GTreeNode<T>* obj)const
{
GTreeNode<T>* ret = NULL;
if( node == obj)
{
return node;
}
else
{
if(node !=NULL)
{
for(node->child.move(0);(!node->child.end()) && (ret == NULL);node->child.next())
{
ret = find(node->child.current(),obj);
}
}
}
return ret;
}
总结:
-查找操作时树的关键操作之一
-基于数据元素的查找可判断值是否存在于树中
-基于节点的查找可判断树中是否存在指定结点
-插入操作和删除操作都依赖于查找操作