1
0
mirror of https://github.com/DanilaFe/abacus synced 2024-06-16 16:07:06 -07:00
Abacus/src/main/kotlin/org/nwapw/abacus/tree/BinaryNode.kt

15 lines
547 B
Kotlin
Raw Normal View History

package org.nwapw.abacus.tree
data class BinaryNode(val operation: String, val left: TreeNode? = null, val right: TreeNode?) : TreeNode() {
override fun <T : Any> reduce(reducer: Reducer<T>): T? {
val leftReduce = left?.reduce(reducer) ?: return null
val rightReduce = right?.reduce(reducer) ?: return null
return reducer.reduceNode(this, leftReduce, rightReduce)
}
override fun toString(): String {
return "(" + (left?.toString() ?: "null") + operation + (right?.toString() ?: "null") + ")"
}
}