美文网首页
62_二叉树中的结点查找操作

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

作者: 编程半岛 | 来源:发表于2018-07-26 21:16 被阅读28次

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

0. 查找的方式

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

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

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

  • 定义功能:find(node, value)
    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;
    }

    BTreeNode<T>* 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_二叉树中的结点查找操作

      本文链接:https://www.haomeiwen.com/subject/mkrimftx.html