1. 程式人生 > >資料結構 筆記:二叉樹中的結點查詢操作

資料結構 筆記:二叉樹中的結點查詢操作

查詢的方式

-基於資料元素值的查詢

·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;
    }