-
Notifications
You must be signed in to change notification settings - Fork 77
Closed
Labels
C APIIssue is about the C APIIssue is about the C APIenhancementNew feature or requestNew feature or request
Milestone
Description
When writing algorithms with the quintuply linked tree structure for trees that contain multiple roots, it's quite tedious that we need to do things like
for root in tree.roots():
do_algorithm(root)
It would be nicer if we could do something like
do_algorithm(tree.fake_root)
(I don't like the term fake_root
but can't think of anything better).
The way this would be implemented in terms of the quintuply linked tree would be to add one more element to the pointer arrays, and to let this value (num_nodes) correspond to the ID of the fake root. Then, tree.left_child_array[-1]
would correspond to the left root, etc.
This is a breaking change in terms of the low-level details of how we do tree traversals etc in C, so I think it would be good to get it done before 1.0.
Metadata
Metadata
Assignees
Labels
C APIIssue is about the C APIIssue is about the C APIenhancementNew feature or requestNew feature or request