From 31bdd87d4d3330bd2da8ada79e213e1c232f4183 Mon Sep 17 00:00:00 2001 From: bjculkin Date: Sun, 19 Mar 2017 19:05:18 -0400 Subject: Add prepending children to trees --- BJC-Utils2/src/main/java/bjc/utils/data/ITree.java | 11 +++++++++-- 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,13 +18,20 @@ import java.util.function.UnaryOperator; */ public interface ITree { /** - * 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 child); + /** + * Prepend a child to this node. + * + * @param child The child to prepend to this node. + */ + void prependChild(ITree child); + /** * Collapse a tree into a single version * 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 implements ITree { return -1; } + + @Override + public void prependChild(ITree child) { + if(hasChildren == false) { + hasChildren = true; + + children = new FunctionalList<>(); + } + + childCount++; + + children.prepend(child); + } } -- cgit v1.2.3