When writing algorithms to deal with subsets of nodes from a tree, it's necessary to identify characteristics of those nodes. For example, a particular subset may be a forest, and the algorithm could gain huge performance benefits by identifying the roots of each subtree in the forest.
I'd like to know if there is an established vocabulary for discussing nodes within the subsets. It would be very nice to say "Find the 'Subset Roots'" instead of "Find the nodes which have no ancestors in the same subset."
(1) / \ (*2*) (3) / | \ | \ (4) (*5*) (*6*) (7) (*8*) | | (9) (10) | (*11*)
For the subset (2, 5, 6, 8, 11), these are the useful groupings I can identify, with names or explanations underneath. I've dealt with algorithms for which it would be useful to have names for each of the following:
- (2, 5, 6, 8, 11)
- nodes which are in the subset
- "Subset" or "Selections" sounds reasonable here.
- (2, 8)
- nodes which have no ancestors in the same subset
- "Subset Root Nodes"?
- (2 (5 (11), 6)), (8)
- trees in the subset
- "Subset Forest"?
- (6, 8, 11)
- nodes which have no descendants in the subset
- "Subset Leaf Nodes"?
- (2, 5)
- nodes which are internal in the subset
- "Subset Internal Nodes"?
The "Subset ..." terms are straw-man proposals intended to provoke discussion in the event that there are not well-established terms for these things.