Question generated for student with ID 0465224

  (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 to delete the root node of a tree and replace with the right-most leaf node. (Hint. Write another function to delete the right-most leaf node first!)
  2. Write a function to delete the minimum value of a binary tree.
  3. Write a function to compare two tree if they are the same. The function should return 1 if they are the same, or 0 otherwise.
  4. Write a function to count the number of leaf nodes of a given binary tree.
  5. 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
  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.