k-ary tree is probably the closest to what you're looking for. This typically refers to a tree where each node has at most k children (for some k, e.g. a binary tree is a 2-ary tree).
If you're looking for the case where the number of children per node is unbounded, I don't believe that has a specific name, it's just called a tree (although I imagine some resources might call that a k-ary tree as well).
An obvious place for improvement I see here is to use generics for your structure (you should replace IList<Object>
with a generic data type, and rename Items
to Data
... probably).
Without knowing what you want to do, I can't say whether IList<Object>
is a good idea - an alternative might be to have a class with members with specific types instead, or IList<SomeOtherType>
.
Having each node store a reference to its parent is not that typical, but if there's a need for it, it can be done.