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