diff options
| author | bjculkin <bjculkin@mix.wvu.edu> | 2017-03-19 19:05:18 -0400 |
|---|---|---|
| committer | bjculkin <bjculkin@mix.wvu.edu> | 2017-03-19 19:05:18 -0400 |
| commit | 31bdd87d4d3330bd2da8ada79e213e1c232f4183 (patch) | |
| tree | 3c7cf2f4be113e722619e4d6c1774f71bebb555e /BJC-Utils2/src/main/java/bjc/utils | |
| parent | 415f5689fe900a04bf64d41878cfa225905b6617 (diff) | |
Add prepending children to trees
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/data/ITree.java | 11 | ||||
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/data/Tree.java | 13 |
2 files changed, 22 insertions, 2 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java b/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java index 9132278..30d5558 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/ITree.java @@ -18,14 +18,21 @@ import java.util.function.UnaryOperator; */ public interface ITree<ContainedType> { /** - * Add a child to this node + * Append a child to this node. * * @param child - * The child to add to this node + * The child to append to this node. */ public void addChild(ITree<ContainedType> child); /** + * Prepend a child to this node. + * + * @param child The child to prepend to this node. + */ + void prependChild(ITree<ContainedType> child); + + /** * Collapse a tree into a single version * * @param <NewType> diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java b/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java index 34e074b..cf4d1fb 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/Tree.java @@ -349,4 +349,17 @@ public class Tree<ContainedType> implements ITree<ContainedType> { return -1; } + + @Override + public void prependChild(ITree<ContainedType> child) { + if(hasChildren == false) { + hasChildren = true; + + children = new FunctionalList<>(); + } + + childCount++; + + children.prepend(child); + } } |
