-
Notifications
You must be signed in to change notification settings - Fork 313
Description
Description:
I would like to contribute an AVL Tree implementation to PyDataStructs. After reviewing the existing codebase, I noticed that while there are several tree structures, a self-balancing AVL tree would be a valuable addition to the project.
Proposed Implementation:
Core Features:
AVLTree class with proper inheritance structure
Balanced insertion and deletion operations
Node balance factor tracking
Tree rotation mechanisms (single and double rotations)
Common tree traversal methods
Search functionality with O(log n) performance
Added Value:
Implementation will include detailed operation visualization hooks that align with the visualization resources mentioned in the README (visualgo.net and cs.usfca.edu)
Comprehensive test suite based on standard AVL tree edge cases
Performance benchmarks comparing with regular BST operations
Implementation Plan:
Study existing tree implementations in the codebase
Design the API to maintain consistency with other data structures
Implement core functionality with thorough documentation
Write tests based on examples from the OpenDataStructures book
Add visualization support
Benchmark against other tree implementations
Technical Considerations:
The implementation will follow the numpydoc style guide
Code will maintain the project's high test coverage standards
Will include both Python implementation and prepare for C++ backend support
I am familiar with the project's contribution guidelines and will follow the pull request policy. Looking forward to discussing this implementation further.
This refined proposal:
Shows you've reviewed the existing project
Adds visualization support (which aligns with their README references)
Demonstrates awareness of their documentation and testing standards
Provides a clear implementation plan
Mentions their C++ backend plans
Addresses their focus on consistent APIs
I would love to work on this! Please assign this issue to me.
@Kishan-Ved