Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

2 What to do Design an interface Polynomial that defines the above operations. This is your polynomial abstract data type. Specifically this interface should have

2 What to do Design an interface Polynomial that defines the above operations. This is your polynomial abstract data type. Specifically this interface should have the following method signatures: A method addTerm that takes a coefficient and a power (both integral numbers) and adds the resulting term to the polynomial. (This will enable you to build a polynomial term-by-term.) It should throw an IllegalArgumentException if a negative power is passed to it. A method removeTerm that takes a power and removes any and all terms in the polynomial with that power. A method getDegree that returns the degree of this polynomial. A method getCoefficient that takes a power and returns the coefficient for the term with that power. A method evaluate that takes a double-precision decimal number and returns a double-precision result. A method add that takes another Polynomial object and returns the polynomial obtained by adding the two polynomials. Any implementation should ensure that this method does not mutate either polynomial. The implementation may assume that the given Polynomial is the of the same concrete class as this object; if it is a different class, the method may throw an IllegalArgumentException.

Now implement this interface in a class PolynomialImpl. Beyond implementing the Polynomial interface, this implementation should have the following features/obey these constraints:

  • This class should store the polynomial using the a linked list with nodes. This representation must be implemented by you (i.e. you are not allowed to use existing list classes in Java).

  • This class should store only terms with non-zero coefficients.

  • This class should store the polynomial terms in decreasing order of their powers.

  • This class should have a constructor with no parameters that creates a polynomial with no terms, i.e. the polynomial 0 (how to represent this?).

  • This class should have another constructor that takes a polynomial as a string, parses it and creates the polynomial accordingly. The string contains the polynomial, with each term separated by a space. The following examples should work with your constructor:

    • "4x^3 +3x^1 -5"

    • "-3x^4 -2x^5 -5 +11x^1"

    Hint: Break the string into substrings and process. You may find the Scanner and String classes helpful to do this. Furthermore one can convert "23" into the integer 23 by using Integer.parseInt("23").

  • While you are free to write helper methods, you are not allowed to write any other public methods other than those in the interface and the above two constructors.

  • This class should include a toString method that returns a string that contains the polynomial. The following examples should help you infer the required format:

    • 52+425x2+4x2 creates the string 5x^2 +4x^1 -2

    • 503+2+350x3+x2+3 creates the string -50x^3 +1x^2 +3

    • 4+2532104x+2x53x210 creates the string 2x^5 -3x^2 +4x^1 -10

Write tests that thoroughly test this implementation. As always, it is recommended to write the test before completing the PolynomialImpl implementation.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Professional Microsoft SQL Server 2012 Administration

Authors: Adam Jorgensen, Steven Wort

1st Edition

1118106881, 9781118106884

More Books

Students also viewed these Databases questions

Question

Show (a) (AB)t = Bt At (b) (AB)-1 = B1 A1

Answered: 1 week ago