Question generated for student with ID 0455258

  (You are responsible to check if your student number is correct!)
  Read carefully the binary tree implementation given in class. Using that given tree structure to dothe following problems:
  1. Write a function that searches for a given value of a binary tree and deletes it
  2. Write a function to find the predecessor and successor of a given value of a binary tree.Definition : If node X has two children, its predecessor is the maximum value in its left subtree and its successor is the minimum value in its right subtree
  3. Write a function to check if a given tree is a full binary tree. It should return 1 if the tree is a full binary tree, or 0 otherwise. Definition: Full binary tree is binary tree in which each node has exactly zero or two children.
  4. Write a function to delete the maximum value of a binary tree.
  5. Write a function to calculate the sum of all the leaf nodes of a given binary tree.
  You must also write a main function with other sufficient function calls to Insert() and Print() and several test cases to make sure your program performs properly! Each program should be in a seperate file with meaningfulcomments for your code. You may re-use as much code as needed for each part.