mirror of
https://github.com/AdrianKuta/Tree-Data-Structure.git
synced 2025-04-19 23:19:03 +02:00
Renamed functions.
This commit is contained in:
parent
8dbbd3b2f8
commit
3f166aced0
38
README.md
38
README.md
@ -7,6 +7,7 @@ Simple implementation to store object in tree structure. Method `toString()` is
|
||||
|
||||
## Usage
|
||||
|
||||
**Kotlin**
|
||||
```kotlin
|
||||
val root = TreeNode("World")
|
||||
val northA = TreeNode("North America")
|
||||
@ -24,18 +25,37 @@ europe.addChild(france)
|
||||
println(root)
|
||||
```
|
||||
|
||||
Or in more Kotlin like style:
|
||||
**Pretty Kotlin**
|
||||
|
||||
```kotlin
|
||||
val root = treeNode("World") {
|
||||
treeNode("North America") {
|
||||
treeNode("USA")
|
||||
}
|
||||
treeNode("Europe") {
|
||||
treeNode("Poland")
|
||||
treeNode("Germany")
|
||||
}
|
||||
val root =
|
||||
tree("World") {
|
||||
child("North America") {
|
||||
child("USA")
|
||||
}
|
||||
child("Europe") {
|
||||
child("Poland")
|
||||
child("Germany")
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Java**
|
||||
```java
|
||||
TreeNode<String> root = new TreeNode<>("World");
|
||||
TreeNode<String> northA = new TreeNode<>("North America");
|
||||
TreeNode<String> europe = new TreeNode<>("Europe");
|
||||
root.addChild(northA);
|
||||
root.addChild(europe);
|
||||
|
||||
TreeNode<String> usa = new TreeNode<>("USA");
|
||||
northA.addChild(usa);
|
||||
|
||||
TreeNode<String> poland = new TreeNode<>("Poland");
|
||||
TreeNode<String> france = new TreeNode<>("France");
|
||||
europe.addChild(poland);
|
||||
europe.addChild(france);
|
||||
System.out.println(root);
|
||||
```
|
||||
|
||||
*Output:*
|
||||
|
@ -15,7 +15,7 @@ android {
|
||||
minSdkVersion 15
|
||||
targetSdkVersion 29
|
||||
versionCode 1
|
||||
versionName "1.1.0"
|
||||
versionName "1.2.0"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
consumerProguardFiles 'consumer-rules.pro'
|
||||
|
@ -5,17 +5,17 @@ interface ChildDeclarationInterface<T> {
|
||||
/**
|
||||
* This method is used to easily create child in node.
|
||||
* ```
|
||||
* val root = treeNode("World") {
|
||||
* treeNode("North America") {
|
||||
* treeNode("USA")
|
||||
* val root = tree("World") {
|
||||
* child("North America") {
|
||||
* child("USA")
|
||||
* }
|
||||
* treeNode("Europe") {
|
||||
* treeNode("Poland")
|
||||
* treeNode("Germany")
|
||||
* child("Europe") {
|
||||
* child("Poland")
|
||||
* child("Germany")
|
||||
* }
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
@JvmSynthetic
|
||||
fun treeNode(value: T, childDeclaration: ChildDeclaration<T>? = null)
|
||||
fun child(value: T, childDeclaration: ChildDeclaration<T>? = null)
|
||||
}
|
@ -27,7 +27,7 @@ open class TreeNode<T>(val value: T) : Iterable<TreeNode<T>>, ChildDeclarationIn
|
||||
}
|
||||
|
||||
@JvmSynthetic
|
||||
override fun treeNode(value: T, childDeclaration: ChildDeclaration<T>?) {
|
||||
override fun child(child: T, childDeclaration: ChildDeclaration<T>?) {
|
||||
val newChild = TreeNode(value)
|
||||
if(childDeclaration != null)
|
||||
newChild.childDeclaration()
|
||||
|
@ -5,13 +5,14 @@ typealias ChildDeclaration<T> = ChildDeclarationInterface<T>.() -> Unit
|
||||
/**
|
||||
* This method can be used to initialize new tree.
|
||||
* ```
|
||||
* val root = treeNode("World") { ... }
|
||||
* val root = tree("World") { ... }
|
||||
* ```
|
||||
* @see [ChildDeclarationInterface.treeNode]
|
||||
* @param root Root element of new tree.
|
||||
* @see [ChildDeclarationInterface.child]
|
||||
*/
|
||||
@JvmSynthetic
|
||||
inline fun<reified T> treeNode(value: T, childDeclaration: ChildDeclaration<T>): TreeNode<T> {
|
||||
val treeNode = TreeNode(value)
|
||||
inline fun<reified T> tree(root: T, childDeclaration: ChildDeclaration<T>): TreeNode<T> {
|
||||
val treeNode = TreeNode(root)
|
||||
treeNode.childDeclaration()
|
||||
return treeNode
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user