The second programming project involves writing a program that examines a file of polynomials and determines whether the polynomials in that file are in strictly ascending order using two different methods of comparison.
Each line of the input file will contain one polynomial. On each line will be the terms of the polynomial. Each
term will be represented as a pair of values. The first element of that pair is a real value that represents the
coefficient and the second an integer value, which is its corresponding exponent. For example, 5.6 3 4 1 8.3 0
represents the polynomial 5.6x
3 + 4x + 8.3. They are intended to be written from the highest exponent to the
lowest, but ensuring that is true is a program requirement. Exponents with zero coefficients will be omitted
The program for this project should consist of four outer classes. The Polynomial class is the first of those
four. Instances of the Polynomial class should define an individual polynomial. Polynomial objects should
be represented internally by a singly linked list. Each node of that linked list should contain one term of the
polynomial consisting of its coefficient and exponent. You are not permitted to use the predefined Java
LinkedList class, but instead must create the nodes of the linked list as instances of a static nested class inside
the Polynomial class. The Polynomial class must implement both the Iterable and Comparable
interfaces. It must have four public methods.
1. A constructor that accepts a string that defines one polynomial in the same format as provided in the input file.
2. A compareTo method that compares two polynomials. If the two polynomials have different highest order exponents, the one with the highest exponent is the greatest. If their highest exponents are the same, their coefficients are compared. If two polynomials have the same highest order exponent with the same coefficients the next highest exponent is examined, and so on.
3. An iterator method that produces an iterator the iterates across the terms of the polynomial from
highest exponent to lowest and returns and an object that contains only the coefficient and exponent of
the next term