Question generated for student with ID 0369960

  (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 stores the values of the nodes of a binary search tree in increasing orderinto an array: datatype in[]. Note: You have to do this without sorting.
  2. If you have this question then your program have to use this new tree structure instead of the one given in class
    typedef struct tree{
    	datatype data;
    	int descendands;
    	struct tree *left, *right;
    } tree;
    
      Write a function that traverses the tree and initializes the member descendands when a node is visited. The value of descendands of a node is the number of descendants (children) of that node.
  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. For a given binary tree, write a function to identify if the nodes follow the arrangement of a binary search tree or not.It should return 1 if the binary tree is a binary search tree, 0 otherwise. Arrangement: For each node, all the nodes in its left subtree must be less than or equal to it and all the nodes in its right subtree must be greater than it.
  5. Write a function to calculate the depth of a given binary tree. That is how many levelsthe binary tree has.
  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.