10-顺序二叉树-Scala实现
Posted help-silence
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10-顺序二叉树-Scala实现相关的知识,希望对你有一定的参考价值。
用树的结构遍历数组
package com.atguigu.datastructures.binarytree object ArrayTreeDemo { def main(args: Array[String]): Unit = { val arr = Array(1,2,3,4,5,6,7) val arrayTree = new ArrayTree(arr) arrayTree.postOrder() } } class ArrayTree(val arr:Array[Int]){ //重载 def preOrder(): Unit ={ this.preOrder(0) } def infixOrder(): Unit ={ this.infixOrder(0) } def postOrder(): Unit ={ this.postOrder(0) } def preOrder(index:Int): Unit ={ if (arr == null || arr.length == 0){ println("数组为空,不能按照二叉树前序遍历") } println(arr(index)) //向左递归遍历 if ((index*2 + 1) < arr.length){ preOrder(index*2 + 1) } //向右递归遍历 if ((index*2 + 2) < arr.length){ preOrder(index*2 + 2) } } def infixOrder(index:Int): Unit ={ if (arr == null || arr.length == 0){ println("数组为空,不能按照二叉树前序遍历") } //向左递归遍历 if ((index*2 + 1) < arr.length){ infixOrder(index*2 + 1) } println(arr(index)) //向右递归遍历 if ((index*2 + 2) < arr.length){ infixOrder(index*2 + 2) } } def postOrder(index:Int): Unit ={ if (arr == null || arr.length == 0){ println("数组为空,不能按照二叉树前序遍历") } //向左递归遍历 if ((index*2 + 1) < arr.length){ postOrder(index*2 + 1) } //向右递归遍历 if ((index*2 + 2) < arr.length){ postOrder(index*2 + 2) } println(arr(index)) } }
以上是关于10-顺序二叉树-Scala实现的主要内容,如果未能解决你的问题,请参考以下文章