Compare commits

..

No commits in common. "master" and "v3.0.1" have entirely different histories.

5 changed files with 13 additions and 10 deletions

View File

@ -2,7 +2,7 @@ name: Publish Snapshot
on:
push:
branches: [master]
branches: [master, '14-**']
jobs:
test:

2
.idea/vcs.xml generated
View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -9,7 +9,7 @@ plugins {
val PUBLISH_GROUP_ID = "com.github.adriankuta"
val PUBLISH_ARTIFACT_ID = "tree-structure"
val PUBLISH_VERSION = "3.0.2"
val PUBLISH_VERSION = "3.0.1"
val secretFile = File(rootProject.rootDir, "local.properties")
if (secretFile.exists()) {

View File

@ -8,10 +8,7 @@ import com.github.adriankuta.datastructure.tree.iterators.TreeNodeIterators
import com.github.adriankuta.datastructure.tree.iterators.TreeNodeIterators.*
import kotlin.jvm.JvmSynthetic
/**
* @param treeIterator Choose one of available iterators from [TreeNodeIterators]
*/
open class TreeNode<T>(val value: T, var treeIterator: TreeNodeIterators = PreOrder) : Iterable<TreeNode<T>>, ChildDeclarationInterface<T> {
open class TreeNode<T>(val value: T) : Iterable<TreeNode<T>>, ChildDeclarationInterface<T> {
private var _parent: TreeNode<T>? = null
@ -36,6 +33,11 @@ open class TreeNode<T>(val value: T, var treeIterator: TreeNodeIterators = PreOr
val isRoot: Boolean
get() = _parent == null
/**
* Choose one of available iterators from [TreeNodeIterators]
*/
var defaultIterator: TreeNodeIterators = PreOrder
/**
* Add new child to current node or root.
*
@ -164,9 +166,9 @@ open class TreeNode<T>(val value: T, var treeIterator: TreeNodeIterators = PreOr
}
/**
* You can change default iterator by changing [treeIterator] property.
* You can change default iterator by changing [defaultIterator] property.
*/
override fun iterator(): Iterator<TreeNode<T>> = when (treeIterator) {
override fun iterator(): Iterator<TreeNode<T>> = when (defaultIterator) {
PreOrder -> PreOrderTreeIterator(this)
PostOrder -> PostOrderTreeIterator(this)
LevelOrder -> LevelOrderTreeIterator(this)

View File

@ -19,7 +19,8 @@ inline fun <reified T> tree(
defaultIterator: TreeNodeIterators = TreeNodeIterators.PreOrder,
childDeclaration: ChildDeclaration<T>
): TreeNode<T> {
val treeNode = TreeNode(root, defaultIterator)
val treeNode = TreeNode(root)
treeNode.defaultIterator = defaultIterator
treeNode.childDeclaration()
return treeNode
}