Download all .cpp files and make file. Type make to make all binarySearch.cpp: ----------------- Given an array A of sorted numbers from the standard input and a number p we would like to search, implement the binary search algorithm that returns the position of number p if it is in A, and returns -1 otherwise. union.cpp: ----------- Write a program to read from standard input two lists of sorted numbers into lists L1 and L2. Write a procedure to compute (L1 union L2) without the duplicates using only the basic list operations. Save the program as union.cpp. The user is prompted to input two sorted arrays of integers. The program then outputs the union of those two arrays. pAddition.cpp: ---------------- Write a program to read from the standard input two polynomials. Write a function to add two polynomials. Do not destroy the input.Use a linked list implementation. If the polynomials have M and N terms, respectively, The user is prompted to input two polynomials of the nature "+4.9x^7". That is, a sign (+ or -), a floating point number (e.g. 4.9 or 3.677), an x, a ^, and a floating point number for the exponent. An input like "+4.5x^7-4.3x^3+2x^0" is acceptable. The program outputs the summation of the two polynomials. reverseList.cpp: ---------------- Write a program to read from standard input a list of numbers and store them in a single listed list. Write a nonrecursive function to reverse the singly linked list in O(N) time. Save the program as reverseList.cpp The user is prompted to input a list of integers. The program is able to non-recursively reverse the list in O(N) time assuming the implementation of the STL list used in the program is singly linked and stores the memory pointers to both the front element and back element of the list. This makes accessing the front and back of the list take O(1) (constant) time.