I have a data structure like below:
Task(id,name,subTasks[Task])
But the problem is the subTasks can contain Tasks which have another subTa
Data structure: the implicit tree formed by object references.
Traversal: recursion or queues.
However, you will have to consider each use case individually. Some will call for depth-first traversal, some for breadth-first traversal. Consider using some graph library to build the trees in the first place if you need a lot of graph operations.