From 6d2cb163436ef4bb3c7b92d7c6dfe9cd3412bf4f Mon Sep 17 00:00:00 2001 From: Supermjork Date: Wed, 1 Jun 2022 19:36:40 +0200 Subject: [PATCH] Recursive Topological sort implemented (Presumably). --- src/RecipeTree.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/RecipeTree.java b/src/RecipeTree.java index 402f24e..4ea8ec4 100644 --- a/src/RecipeTree.java +++ b/src/RecipeTree.java @@ -1,3 +1,5 @@ +import java.util.Stack; + public class RecipeTree { @@ -62,4 +64,19 @@ public class RecipeTree root.printNode(); } } + + public Stack sortTopologically(RecipeNode currentNode) { + Stack recipeStack = new Stack<>(); + + if(currentNode.getChildren() == null) { + recipeStack.push(currentNode); + return recipeStack; + } else { + for (RecipeNode childNode : currentNode.children) { + recipeStack.push(currentNode); + sortTopologically(childNode); + } + } + return recipeStack; + } }