notes firsteunice has two children sowe find the child with the greatest key in eunice' left subtreewhich is dontoniodelete itand replace eunice with dontonio we start by deleting dontoniodaisy eunice binky baby daisy calista luther ahmed boo fred and we start checking at eunice it is imbalanced looking at itwe see that it' zig-zagso we have to double-rotate about freddaisy binky baby daisy ahmed fred calista eunice luther boo nowthe subtree rooted by fred is balancedbut the subtree' height is one less than it used to beso we need to move to it' parent and check it its height is unchangedand it is balancedso we're done as last stepwe replace eunice with dontonioavl tree algorithms #ifndef avl_tree_h #define avl_tree_h #include "dsexceptions #include /for null using namespace std/avltree class //constructionwith item_not_found object used to signal failed finds //******************public operations******************** /void insertx --insert /void removex --remove (unimplemented/bool containsx --return true if is present /comparable findmin--return smallest item /comparable findmax--return largest item /boolean isempty--return true if emptyelse false /void makeempty--remove all items lovely professional university