1. In each of the following cases, the input data can be read from input data file(s). Although the initial input data may be organized as an array, it may be more convenient and efficient to use other types of data structures for internal storage in the programs; for example, binary search trees; hash tables, heaps, priority queues, stacks, queues, etc.
2. Write a C++ program that has as input data an M x N array (M > 500 and N > 500), entry with value from the set V = {0, 1, ..., v}, v < 100. The program performs the following calculations:
a. Compute the number of each value k in V = {0, 1, …, v} in each row, column, main diagonal, off-diagonal.
b. Sort the values in each row.
c. Sort the values in each column.
d. Store the values in each row in a binary search tree.
e. Store the array values in a heap structure.
f. Store the array values in a hash table.