当Kotlin遇见数据结构丨实现链式存储的二叉树中查找节点

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_15609303/article/details/102296896

1. 查找方法

链式存储的二叉树中查找节点的方法可分为三种:前序查找、中序查找、后序查找,下面使用 Kotlin 语言编码实现查找函数,已创建的树结构、节点权如下图所示:

1.1 前序查找函数

    /**
     * 前序查找
     * */
    fun frontSearch(index: Int):TreeNode?{
        var node:TreeNode? = null

        if(index == this.value){
            return this
        }else{
            node = leftNode?.frontSearch(index)

            return node?:null

            node = rightNode?.frontSearch(index)
        }

        return node
    }

1.2 中序查找函数

    /**
     * 中序查找
     * */
    fun middleSearch(index: Int): TreeNode? {
        var node:TreeNode? = null

        node = leftNode?.frontSearch(index)

        return node?:null

        if(index == this.value){
            return this
        }

        node = rightNode?.frontSearch(index)

        return node
    }

1.3 后序查找函数

    /**
     * 后序查找
     * */
    fun afterSearch(index: Int): TreeNode? {
        var node:TreeNode? = null

        node = leftNode?.frontSearch(index)

        return node?:null

        node = rightNode?.frontSearch(index)

        return node?:null

        if(index == this.value){
            return this
        }

        return node
    }


2. 函数运行结果


猜你喜欢

转载自blog.csdn.net/qq_15609303/article/details/102296896