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 unaLinkedList
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 atributoscoeficiente
yexponente
. - Se asume la existencia de una clase
Cero
con un método estáticoesCero
para comprobar si un valor es cero.