Polynomial class in PYTHON
You are to implement a Polynomial class that supports an integer polynomial datatype. Quite often, such a datatype can be implemented using a list or an array. However, our Polynomials will be sparse, meaning that a lot of terms will be zero. In such a case, only the nonzero terms should be stored in the data structure. For this assignment, you must use a linked list to store the nonzero terms of the polynomial. You are to provide the methods iszero(), eval(a), degree(), and lowest_term(). The iszero() method returns a Boolean that reports whether the polynomial is the zero polynomial. The eval(a) method returns the evaluation of the polynomial at x=a. The degree() method returns the degree of the polynomial; for simplicity, return 0 for the zero polynomial. (Strictly speaking, the degree of the zero polynomial is undefined.). The lowest_term() method returns the exponent of the lowest non-zero term. You are to provide the method horners() that will return a string of the Horner's rule representation of the polynomial. The Horner's rule representation of the polynomial a_(n)x^(n)+a_(n-1)x^(n-1)+...+a_(1)x+a_(0) is the string "x(x(...(x(a_(n)x+a_(n-1))+a_(n-2))+...)+a_(0)". Zero terms and a coefficient a_(n) of 1 must not be included in the return string. For example, for the polynomial -x^(4)+3x^(2)+5, the method should return the string "x(x(x(-x)+3))+5".