what is the difference between WAVL (weak AVL) and Red Black Tree? is there a specific reason to use WAVL over RB?
A WAVL tree is an attempt to combine the best characteristics of a AVL trees and red-black trees. Just inserting into a WAVL tree will build the same tree as an AVL tree - one that is more strictly balanced than a red-black tree so WAVL trees can be expected to perform better in situations where red-black trees become more unbalanced. Delete in WAVL is slightly simpler than delete for AVL trees in that WAVL deletes perform only 1 or 2 rotations and stop instead of potentially all the way to the root.