diff --git a/.github/workflows/publishSnapshot.yml b/.github/workflows/publishSnapshot.yml
index e7031ed..cc36031 100644
--- a/.github/workflows/publishSnapshot.yml
+++ b/.github/workflows/publishSnapshot.yml
@@ -2,7 +2,7 @@ name: Publish Snapshot
on:
push:
- branches: [master, '14-**']
+ branches: [master]
jobs:
test:
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..35eb1dd 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
index 8d3d1f7..d4a76bb 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -9,7 +9,7 @@ plugins {
val PUBLISH_GROUP_ID = "com.github.adriankuta"
val PUBLISH_ARTIFACT_ID = "tree-structure"
-val PUBLISH_VERSION = "3.0.1"
+val PUBLISH_VERSION = "3.0.2"
val secretFile = File(rootProject.rootDir, "local.properties")
if (secretFile.exists()) {
diff --git a/src/commonMain/kotlin/com.github.adriankuta/datastructure/tree/TreeNode.kt b/src/commonMain/kotlin/com.github.adriankuta/datastructure/tree/TreeNode.kt
index 5728f00..16fd262 100644
--- a/src/commonMain/kotlin/com.github.adriankuta/datastructure/tree/TreeNode.kt
+++ b/src/commonMain/kotlin/com.github.adriankuta/datastructure/tree/TreeNode.kt
@@ -8,7 +8,10 @@ import com.github.adriankuta.datastructure.tree.iterators.TreeNodeIterators
import com.github.adriankuta.datastructure.tree.iterators.TreeNodeIterators.*
import kotlin.jvm.JvmSynthetic
-open class TreeNode(val value: T) : Iterable>, ChildDeclarationInterface {
+/**
+ * @param treeIterator Choose one of available iterators from [TreeNodeIterators]
+ */
+open class TreeNode(val value: T, var treeIterator: TreeNodeIterators = PreOrder) : Iterable>, ChildDeclarationInterface {
private var _parent: TreeNode? = null
@@ -33,11 +36,6 @@ open class TreeNode(val value: T) : Iterable>, ChildDeclarationIn
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.
*
@@ -166,9 +164,9 @@ open class TreeNode(val value: T) : Iterable>, ChildDeclarationIn
}
/**
- * You can change default iterator by changing [defaultIterator] property.
+ * You can change default iterator by changing [treeIterator] property.
*/
- override fun iterator(): Iterator> = when (defaultIterator) {
+ override fun iterator(): Iterator> = when (treeIterator) {
PreOrder -> PreOrderTreeIterator(this)
PostOrder -> PostOrderTreeIterator(this)
LevelOrder -> LevelOrderTreeIterator(this)
diff --git a/src/commonMain/kotlin/com.github.adriankuta/datastructure/tree/TreeNodeExt.kt b/src/commonMain/kotlin/com.github.adriankuta/datastructure/tree/TreeNodeExt.kt
index e8e02b6..6ad015d 100644
--- a/src/commonMain/kotlin/com.github.adriankuta/datastructure/tree/TreeNodeExt.kt
+++ b/src/commonMain/kotlin/com.github.adriankuta/datastructure/tree/TreeNodeExt.kt
@@ -19,8 +19,7 @@ inline fun tree(
defaultIterator: TreeNodeIterators = TreeNodeIterators.PreOrder,
childDeclaration: ChildDeclaration
): TreeNode {
- val treeNode = TreeNode(root)
- treeNode.defaultIterator = defaultIterator
+ val treeNode = TreeNode(root, defaultIterator)
treeNode.childDeclaration()
return treeNode
}
\ No newline at end of file