数据结构 笔记:二叉树中的结点查找操作

查找的方式

-基于数据元素值的查找

·BTreeNode<T>* find(const T& value) const

-基于结点的查找

·BTreeNode<T>* find(TreeNode<T>* node) const

基于数据元素值的查找

-定义功能:find(node,vlaue)

·在node为根结点的二叉树中查找value所在结点

virtual BTreeNode<T>* find(BTreeNode<T>* node,const T& value)const
    {
        BTreeNode<T>* ret = NULL;

        if(node != NULL)
        {
            if(node->value == value)
            {
                ret = node;
            }
            else
            {
                if(ret == NULL)
                {
                    ret = find(node->left,value);
                }

                if(ret == NULL)
                {
                    ret = find(node->right,value);
                }
            }
        }

        return ret;
    }

基于结点的查找

-定义功能:find(node,obj)

·在node为根节点的二叉树中查找是否存在obj的结点

virtual BTreeNode<T>* find(BTreeNode<T>* node,BTreeNode<T>* obj)const
    {
        BTreeNode<T>* ret = NULL;

        if(node == obj)
        {
            ret = node;
        }
        else
        {
            if(node != NULL)
            {
                if(ret == NULL)
                {
                    ret = find(node->left,obj);
                }

                if(ret == NULL)
                {
                    ret = find(node->right,obj);
                }
            }
        }

        return ret;
    }

猜你喜欢

转载自blog.csdn.net/qq_29962483/article/details/84062946
今日推荐