Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces several enhancements and refactors to improve the tree traversal capabilities within the codebase, adding the ability to traverse in reverse order, refining API methods, and restructuring tests for better coverage and readability. Below are the main changes included in this PR:
Key Changes
Traversal Enhancements
tree.TraverseReverse
, allowing iterations over nodes in reverse order.tree.ForEach
andtree.ForEachPrefix
methods to support optional traversal parameters.Iterator Refactoring
newTraverseFunc
to replacetraverseContext
, which simplifies the traversal logic by using function types (traverseFunc
) instead of struct-based contexts.Test Suite Expansion
tree.ForEach
,tree.ForEachPrefix
, andtree.Iterator
.Overall Benefits
Performance
The introduction of reverse traversal provides a flexible and efficient means of traversing large datasets, reducing overhead in scenarios where reverse-order processing is needed.