public static boolean DFS(Node root, int lookup)
	{
		if(root.getData() == lookup)
		{
			return true;
		}
		//DFS Uses a stack
		Stack<Node> stack = new Stack<Node>();
		//add root to stack
		stack.add(root);		
		//Begin da while loop
		boolean found = false;
		
		//Logic: pop a node off the stack, recursive call, if it return true
		//then return true, else add its children to a stack if the child 
		//hasn't been visited yet
		//if you find nothing and you're at a leaf, return false
		while(stack.empty() == false)
		{
			Node currentNode = stack.pop();
			//Recursive call to check current node
			found = DFS(currentNode, lookup);
			if (found == true)
			{
				return true;
			}
			Iterator<Node> iterator = root.getChildren().iterator();
			while(iterator.hasNext() == true)
			{
				Node nextNode = iterator.next();
				if(nextNode.getVisited() == false)
				{
					stack.add(nextNode);
				}
			}
		}
		//found nothing
		return false;
	}