Implement a 2-3-tree. You must define a class to represent the tree, with methods for the following operations: add a new item remove and return an item, throwing a suitable exception if it is not present apply a given (parameter) function to every item in order The class must be templated (on the item type) and only needs to work for types that implement all six comparison operators (==, !=, <, >, <=, >=), they define the left to right ordering of the data items. You must complete the deletion worksheets and include them in the word document that you submit. I suggest that youdraw up your own worksheets rather than use the scruffy ones I made as an illustration, but that is up to you. Whatever you use, it must have the same entries as my one (unless you find that I have missed something). The three required methods must use recursion, not loops. You must write each of the cases for item removal in terms of rotate3 and rotate4 as far as is possible. rotate3(a, b, c) performs a = b; b = c; rotate4(a, b, c, d) performs a = b; b = c; c = d; all reference parameters of course. Don't forget the case of deleting from a 2-node whos brother/sisters is also a 2-node and so is its parent. Do NOT use the red-black tree methods.