<prompt> Kutekeleza mti nyekundu-nyeusi katika C .  <response>: Here is an implementation of a red-black tree in C:include using namespace std;enum Color RED, BLACK;struct Node int val; Color color; Node left, right, parent; Node Nodeint v, Color c val v; color c; left right parent NULL; ;class RedBlackTree private: Node root; public: RedBlackTree root NULL; Helper functions Node grandparentNode n if n n-parent return n-parent-parent; else return NULL; Node uncleNode n Node g grandparentn; if !g return NULL; if n-parent g-left return g-right; else return g-left; Node siblingNode n if !n !n-parent return NULL; if n n-parent-left return n-parent-right; else return n-parent-left; void fix_treeNode n while n ! root n-color RED n-parent-color RED Node p n-parent; Node g grandparentn; Node u unclen; if u u-color RED p-color BLACK; u-color BLACK; g-color RED; n g; else if p g-left if n p-right n p; left_rotaten; p-color BLACK; g-color RED; right_rotateg; else if n p-left n p; right_rotaten; p-color BLACK; g-color RED; left_rotateg; root-color BLACK; void left_rotateNode n Node r n-right; n-right r-left; if r-left r-left-parent n; r-parent n-parent; if !n-parent root r; else if n n-parent-left n-parent-left r; else n-parent-right r; r-left n; n-parent r; void right_rotateNode n Node l n-left; n-left l-right; if l-right l-right-parent n; l-parent n-parent; if !n-parent root l; else if n n-parent-left n-parent-left l; else n-parent-right l; l-right n; n-parent l; void insert_nodeint val Node n new Nodeval, RED; if !root root n; else Node current root; Node parent NULL; while current parent current; if val current-val current current-left; else current current-right; n-parent parent; if val parent-val parent-left n; else parent-right n; fix_treen; Node search_nodeint val Node current root; while current current-val ! val if val current-val current current-left; else current current-right; return current; void inorderNode n if !n return; inordern-left; cout n-val ; inordern-right; void print_tree inorderroot; cout endl; ;This implementation includes the insertion of nodes, searching for nodes, and printing the tree using an inorder traversal. The fix_tree function is responsible for maintaining the red-black balance after each insert. 