1. Given an unsorted array A of integers, find the pair of elements from A for which the sum is median(s) over sum of all such pairs. For example if input array A = [7, -37, 2, -3, 9], then the output = (2, -3), (7, -3) 2. Given a linked list, return the list consisting only of odd numbered elements of the original list in reverse order. For example, if the linked list is 1->2->3->4->5->6, then the program should return 5->3->1 3. Implement Quick Sort and insertion sort of an array A. Dynamically allocate memory of size n. 4. Given a string M, find all substrings of M. 5. Implement a circular queue using array and do the following. Take as input integers. Enqueue the first one. Then from the second integer onwards, do the following: As long as the integer is positive, enqueue the integer. If the integer is zero or negative, then dequeue once and return the elements of the queue. If the queue size becomes more than 5, return the first 5 elements. For example, if input is 10, 14, 7, -8, then output is 10, 14 If input is -11, output is blank If input is 1, 13, 25, 57, 49, 31, then output is 1, 13, 25, 57, 49 6. Given a 2D array A of integers, considering it a matrix, give as output the (a) transpose matrix (b) Inverse matrix as another 2D array B. For example, if A = 1 2 3 4 5 6 then B = 1 4 2 5 3 6 7. Write a program to implement stack using a suitable data structure and reading input numbers one by one and printing as output the same numbers in reverse order by using this stack and push and pop operations. 8.Take a structure vendor as follows. struct vendor{ char name[40]; int quantityofitem; int priceofitem; }; The field quantityofitem denotes the quantity of the item purchased from the vendor and the field priceofitem denotes the price of item purchased from the vendor. Write a program using this structure which returns a sorted list of vendors in descending order of the total price paid to vendors i.e. in descending order of quantityofitem * priceofitem. 9. Implement Merge Sort of an array A size n. Dynamically Allocate memory. 10. Given the sorted array A, check for a pair in A with the sum as K using only 1 loop. If such a pair exists, return any 1 pair. For example if input array A=[-8, 1, 4, 6, 10, 45] and sum K = 16 Then the output = 6,10 11. Given two strings M and N, check if N is a substring of M. 12. Given a linked list, pairwise swap elements by changing links not by swapping data. For example, if the linked list is 1->2->3->4->5 then the program should change it to 2->1->4->3->5 13.Given a 2D array A, print it in spiral form. For example, if input A = [1,2,3,4 5,6,7,8 9,10,11,12 13,14,15,16] Output = 1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10 14. Evaluate the postfix expression.(Hint: Use stacks) For example if input = 2 3 4 + * 5 * Then output = 70 The input postifx expression can contain numeric digits, + , - , * , / 15.Take a structure student consisting of name,roll number,marks[3]. Find the average marks (avg of marks[0],marks[1] and marks[2]) of each student. Print the student information in descending order w.r.t the average marks of each student. struct student{ char name[40]; int roll; int marks[3]; } 16. Take two linked lists A and B of size m and n respectively as input. First, sort them individually. Next, merge them to construct a sorted list of size m+n. 17. Implement a (a) stack and (b) Queue using linked list