mirror of
https://github.com/AdrianKuta/Tree-Data-Structure.git
synced 2025-04-19 23:19:03 +02:00
Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
04c3728fcd |
2
.github/workflows/publishSnapshot.yml
vendored
2
.github/workflows/publishSnapshot.yml
vendored
@ -2,7 +2,7 @@ name: Publish Snapshot
|
|||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [master, '14-**']
|
branches: [master]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test:
|
test:
|
||||||
|
2
.idea/vcs.xml
generated
2
.idea/vcs.xml
generated
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
<mapping directory="" vcs="Git" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
@ -9,7 +9,7 @@ plugins {
|
|||||||
|
|
||||||
val PUBLISH_GROUP_ID = "com.github.adriankuta"
|
val PUBLISH_GROUP_ID = "com.github.adriankuta"
|
||||||
val PUBLISH_ARTIFACT_ID = "tree-structure"
|
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")
|
val secretFile = File(rootProject.rootDir, "local.properties")
|
||||||
if (secretFile.exists()) {
|
if (secretFile.exists()) {
|
||||||
|
@ -8,7 +8,10 @@ import com.github.adriankuta.datastructure.tree.iterators.TreeNodeIterators
|
|||||||
import com.github.adriankuta.datastructure.tree.iterators.TreeNodeIterators.*
|
import com.github.adriankuta.datastructure.tree.iterators.TreeNodeIterators.*
|
||||||
import kotlin.jvm.JvmSynthetic
|
import kotlin.jvm.JvmSynthetic
|
||||||
|
|
||||||
open class TreeNode<T>(val value: T) : Iterable<TreeNode<T>>, ChildDeclarationInterface<T> {
|
/**
|
||||||
|
* @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> {
|
||||||
|
|
||||||
private var _parent: TreeNode<T>? = null
|
private var _parent: TreeNode<T>? = null
|
||||||
|
|
||||||
@ -33,11 +36,6 @@ open class TreeNode<T>(val value: T) : Iterable<TreeNode<T>>, ChildDeclarationIn
|
|||||||
val isRoot: Boolean
|
val isRoot: Boolean
|
||||||
get() = _parent == null
|
get() = _parent == null
|
||||||
|
|
||||||
/**
|
|
||||||
* Choose one of available iterators from [TreeNodeIterators]
|
|
||||||
*/
|
|
||||||
var defaultIterator: TreeNodeIterators = PreOrder
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add new child to current node or root.
|
* Add new child to current node or root.
|
||||||
*
|
*
|
||||||
@ -166,9 +164,9 @@ open class TreeNode<T>(val value: T) : Iterable<TreeNode<T>>, ChildDeclarationIn
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can change default iterator by changing [defaultIterator] property.
|
* You can change default iterator by changing [treeIterator] property.
|
||||||
*/
|
*/
|
||||||
override fun iterator(): Iterator<TreeNode<T>> = when (defaultIterator) {
|
override fun iterator(): Iterator<TreeNode<T>> = when (treeIterator) {
|
||||||
PreOrder -> PreOrderTreeIterator(this)
|
PreOrder -> PreOrderTreeIterator(this)
|
||||||
PostOrder -> PostOrderTreeIterator(this)
|
PostOrder -> PostOrderTreeIterator(this)
|
||||||
LevelOrder -> LevelOrderTreeIterator(this)
|
LevelOrder -> LevelOrderTreeIterator(this)
|
||||||
|
@ -19,8 +19,7 @@ inline fun <reified T> tree(
|
|||||||
defaultIterator: TreeNodeIterators = TreeNodeIterators.PreOrder,
|
defaultIterator: TreeNodeIterators = TreeNodeIterators.PreOrder,
|
||||||
childDeclaration: ChildDeclaration<T>
|
childDeclaration: ChildDeclaration<T>
|
||||||
): TreeNode<T> {
|
): TreeNode<T> {
|
||||||
val treeNode = TreeNode(root)
|
val treeNode = TreeNode(root, defaultIterator)
|
||||||
treeNode.defaultIterator = defaultIterator
|
|
||||||
treeNode.childDeclaration()
|
treeNode.childDeclaration()
|
||||||
return treeNode
|
return treeNode
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user