62_二叉树中的结点查找操作

关键词:基于数据元素值的查找、基于结点的查找

0. 查找的方式

  • 基于数据元素值的查找:BTreeNode* find(const T& value) const
  • 基于结点的查找:BTreeNode* find(TreeNode* node) const

1. 树中数据元素和结点的查找

2. 基于数据元素值的查找

  • 定义功能:find(node, value)
    node为根节点的二叉树中查找value所在的结点
    查找的递归调用
    virtual BTreeNode* find(BTreeNode* node, const T& value) const
    {
        BTreeNode* 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;
    }

    BTreeNode* find(const T& value) const
    {
        return find(root(), value);
    }

3. 基于结点的查找

  • 定义功能:find(node, obj)
    node为根结点的二叉树中查找是否存在obj结点

声明:此文章仅是本人在学习狄泰学院《数据结构实战开发教程》所做的笔记,文章中包含狄泰软件资料内容,一切版权归狄泰软件所有!
实验环境:ubuntu10 + Qt Creator2.4.1 + Qt SDK 4.7.4

你可能感兴趣的:(62_二叉树中的结点查找操作)