# Tree (Data Structure) [![maven](https://img.shields.io/maven-central/v/com.github.adriankuta/tree-structure?style=plastic)](https://mvnrepository.com/artifact/com.github.adriankuta/tree-structure) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/AdrianKuta/Design-Patterns-Kotlin/blob/master/LICENSE) Simple implementation to store object in tree structure. Method `toString()` is overrided to provide nice tree view in logs. ## Usage ```kotlin val root = TreeNode("Root") val beveragesNode = TreeNode("Beverages") val curdNode = TreeNode("Curd") root.addChild(beveragesNode) root.addChild(curdNode) val teaNode = TreeNode("tea") val coffeeNode = TreeNode("coffee") val milkShakeNode = TreeNode("Milk Shake") beveragesNode.addChild(teaNode) beveragesNode.addChild(coffeeNode) beveragesNode.addChild(milkShakeNode) val gingerTeaNode = TreeNode("ginger tea") val normalTeaNode = TreeNode("normal tea") teaNode.addChild(gingerTeaNode) teaNode.addChild(normalTeaNode) val yogurtNode = TreeNode("yogurt") val lassiNode = TreeNode("lassi") curdNode.addChild(yogurtNode) curdNode.addChild(lassiNode) println(root) System.out.println("Remove: ${curdNode.value}") root.removeChild(curdNode) System.out.println("Remove: ${gingerTeaNode.value}") root.removeChild(gingerTeaNode) println(root) ``` *Output:*