This is an implementation of AVL-Trees in Racket.
I've created a tree representation using structs, and then I've created accessing functions, like insert / remove, check if a node is a leaf, etc.
There is also a balance function that reconfigures the tree (applies rotations) in order to keep it balanced. As you may see, there are functions that operate on sets, like intersection, union, complement, etc, and finally there is a function that evaluates a postfixed expression.
This was a pretty interesting university assignment.
I hope you like it!
The image belongs to: http://www.cs.uah.edu/~rcoleman/CS221/Trees/Images/AVL02.jpg