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

2019-04-11 14:58:34 浏览数 (1)

1. 查找方法

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

1.1 前序查找函数
代码语言:javascript复制
    /**
     * 前序查找
     * */
    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 中序查找函数
代码语言:javascript复制
    /**
     * 中序查找
     * */
    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 后序查找函数
代码语言:javascript复制
    /**
     * 后序查找
     * */
    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. 函数运行结果


本篇到此完结,如有补充内容随时更新!欢迎关注本人继续跟进技术干货的更新!

0 人点赞