Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a class Polynomial that stores a polynomial such as p(x) = 5x^10 + 9x^7 -

ID: 3676528 • Letter: W

Question

Write a class Polynomial that stores a polynomial such as p(x) = 5x^10 + 9x^7 - x - 10 as a linked list of terms. A term contains the coefficient and the power of x. For example, you would store p(x) as (5,10),(9,7),(-1,1),(-10,0) Supply methods to add, multiply, and print polynomials. Supply a constructor that makes a polynomial from a single term. For example, the polynomial p can be constructed as Polynomial p = new Polynomia- l(new Term(-10, 0)); p.add(new Polynomia- l(new Term(-1, 1))); p.add(new Polynomia- l(new Term(9, 7))); p. add(new Polynomia- l(new Term(5, 10))); Then compute P(x) Times P(x). Polynomial q = p.multiply(p); q. print();

Explanation / Answer

Polynommial.java

import java.util.LinkedList;
import java.util.ListIterator;

public class Polynomial
{
   private LinkedList terms;
  
   public Polynomial()
   {
       terms = new LinkedList();
   }
  
   //add polynomial
   public Polynomial add(Polynomial p)
   {
       Polynomial r = new Polynomial();
       ListIterator iterator = terms.listIterator();
      
       while (iterator.hasNext())
       {
           r.add((Term)iterator.next());
       }
      
       ListIterator pIterator = p.terms.listIterator();
      
       while (pIterator.hasNext())
       {
           r.add((Term)pIterator.next());
       }
      
       return r;
   }
  
   //multiply a polynomial
   public Polynomial multiply (Polynomial p)
   {
       Polynomial r = new Polynomial();
       ListIterator iterator = terms.listIterator();
      
       while (iterator.hasNext())
       {
           ListIterator pIterator = p.terms.listIterator();
           Term t1 = (Term)pIterator.next();
          
           while (pIterator.hasNext())
           {
               Term t2 = (Term)pIterator.next();
               r.add(t1.multiply(t2));
           }
       }
      
       return r;
   }
  
   //add coefficient and degree as new Term
   public void addTerm (double c, int d)
   {
       add(new Term(c,d));
   }
  
   //add term
   public void add (Term t)
   {
       double c = t.getCoeff();
       int d = t.getDegree();
      
       ListIterator iterator = terms.listIterator();
      
       while(iterator.hasNext())
       {
           Term current = (Term)iterator.next();
          
           if (d == current.getDegree())
           {
               if (c == -current.getCoeff())
               {
                   iterator.remove();
               }
              
               else
               {
                   current.add(c);
               }
           }
          
           else if (d < current.getDegree())
           {
               iterator.previous();
               iterator.add(t);
               return;
           }
       }
       iterator.add(t);
   }
  
   //print the polynomial
   public void print()
   {
       ListIterator iterator = terms.listIterator();
      
       while (iterator.hasNext())
       {
           Term current = (Term)iterator.next();
          
           if (current.getCoeff() != 0)
           {
               if (current.getCoeff() > 0)
               {
                   System.out.print(" + ");
               }
               System.out.print(current.getCoeff());
              
               if (current.getDegree() > 0)
               {
                   System.out.print(" * x");
                   if (current.getDegree() > 1)
                   {
                       System.out.print("^" + current.getDegree());
                   }
               }
           }
       }
      
       System.out.println();
   }
}

Term.java

public class Term
{
   private double coeff;
   private int degree;
  
   public Term(double c, int d)
   {
       coeff = c;
       degree = d;
   }
  
   //multiplies a term
   public Term multiply (Term other)
   {
       return new Term(coeff * other.coeff, degree + other.degree);
   }
  
   //add coefficient
   public void add (double c)
   {
       coeff = coeff + c;
   }
  
   //get coefficent
   public double getCoeff()
   {
       return coeff;
   }
  
   //get degree
   public int getDegree()
   {
       return degree;
   }
}

PolynomialTester.java

public class PolynomialTester
{
   public static void main (String[] args)
   {
       Polynomial p = new Polynomial();
       p.addTerm(-10, 0);
       p.addTerm(-1, 1);
       p.addTerm(9, 7);
       p.addTerm(5, 10);
      
       Polynomial q = p.multiply(p);
      
       q.print();
   }
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote