Implementación de una Clase Polinomio en Java

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 2,82 KB

Clase Polinomio

Import

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;

Definición de la Clase

public class Polinomio {
    // La lista de monomios
    private List<Monomio> datos = new LinkedList<Monomio>();

    //CONSTRUCTORES
    public Polinomio() {}

    public Polinomio(double[] v) {
        for(int i = 0; i < v.length; i++) {
            if (!(Cero.esCero(v[i])))
                datos.add(new Monomio(v[i], i));
        }
    }

    public Polinomio(Polinomio otro) {
        if (otro == null)
            throw new NullPointerException();
        for (Monomio item : otro.datos)
            datos.add(new Monomio(item));
    }

    //METODOS
    public void sumar(Polinomio otro) {
        ListIterator<Monomio> iterator1 = this.datos.listIterator();
        ListIterator<Monomio> iterator2 = otro.datos.listIterator();
        while (iterator1.hasNext() && iterator2.hasNext()) {
            Monomio x = iterator1.next();
            Monomio y = iterator2.next();
            if (x.exponente == y.exponente) {
                x.coeficiente += y.coeficiente;
                if (Cero.esCero(x.coeficiente))
                    iterator1.remove();
            } else if (x.exponente > y.exponente) {
                iterator1.previous();
                iterator1.add(y);
            } else {
                iterator2.previous();
            }
        }
        while (iterator2.hasNext()) {
            Monomio y = iterator2.next();
            iterator1.add(y);
        }
    }

    public void multiplicarMonomio(Monomio mono) {
        for (Monomio dato : datos) {
            //for(int i = 0; i < datos.size(); i++)
            dato.coeficiente *= mono.coeficiente;
            dato.exponente += mono.exponente;
        }
        this.datos.removeIf(x -> Cero.esCero(x.coeficiente));
    }
}

Descripción

  • La clase Polinomio utiliza una LinkedList para almacenar los monomios que lo componen.
  • Se incluyen constructores para crear un polinomio vacío, a partir de un array de coeficientes y a partir de otro polinomio.
  • El método sumar permite sumar dos polinomios.
  • El método multiplicarMonomio permite multiplicar un polinomio por un monomio.

Nota

  • Se asume la existencia de una clase Monomio con atributos coeficiente y exponente.
  • Se asume la existencia de una clase Cero con un método estático esCero para comprobar si un valor es cero.

Entradas relacionadas: