
I am doing a program "Multiplication of two polynomials using linked list in java" for our curriculum, can you please help me in this.
Rajesh

//Class for polynomial linked list
import java.util.Scanner;
class Node {
public int numC;
public int numE;
public Node next;
// elementary constructor
public Node() {
numC = 0;
numE = 0;
next = null;
}
// constructor with two argument
public Node(int c, int e) {
numC = c;
numE = e;
next = null;
}
// primary constructor
public Node(int c, int e, Node n) {
numC = c;
numE = e;
next = n;
}
// accessor method
public int getCo() {
return numC;
}
public int getEx(){
return numE;
}
// accessor method
public Node getNext() {
return next;
}
// mutator method
public void setCof(int c){
numC = c;
}
public void setExp(int e){
numE = e;
}
// mutator method for next
public void setNext(Node nextNode) {
next = nextNode;
}
} // end of class Node
class Polynomial {
private Node front;
public Polynomial(){
front = null;
}
//read coefficient fx
public int readCoFx(){
Scanner scan = new Scanner(System.in);
int coef = 0;
System.out.print("Enter Coefficient or 0 to skip to next equation: ");
coef = scan.nextInt();
return coef;
}
//read coefficient gx
public int readCoGx(){
Scanner scan = new Scanner(System.in);
int coef = 0;
System.out.print("Enter Coefficient or 0 to end program: ");
coef = scan.nextInt();
return coef;
}
//read exponent
public int readEx(){
Scanner scan = new Scanner(System.in);
int exp = 0;
System.out.print("Enter Exponent: ");
exp = scan.nextInt();
return exp;
}
//insert Node
public void insert(int coef, int exp){
Node temp = new Node(coef, exp, null);
//insert temp to 1st if empty
if (front == null)
front = temp;
else {
Node p = null;
Node q = front;
//insert in front if exponent is higher
if (temp.getEx() > q.getEx()){
temp.setNext(front);
front = temp;
} else
{//insert at middle or end
while (q != null && q.getEx() > temp.getEx()){
p = q;
q = q.getNext();
}
p.setNext(temp);
temp.setNext(q);
}
}
}
public void mulInsert(int coef, int exp){
//Node temp = new Node(coef, exp, null);
//insert temp to 1st if empty
System.out.println("coef="+coef+"exp="+exp);
if (front == null)
front = new Node(coef,exp,null);
else {
Node p = null;
Node q = front;
//insert in front if exponent is higher
if (exp > q.getEx()){
Node temp = new Node(coef,exp,null);
temp.setNext(front);
front = temp;
} else
{//insert at middle or end
while (q != null && q.getEx() >= exp){
if (q.getEx() == exp)
{
q.numC += coef;
q=q.getNext();
continue;
}
p = q;
q = q.getNext();
}
Node temp = new Node(coef,exp,null);
p.setNext(temp);
temp.setNext(q);
}
}
}
//print function for the equations
public void print(){
Node p = front;
while(p != null){
System.out.print("("+p.getCo()+ "x" + p.getEx()+")");
p = p.getNext();
}
System.out.println("");
}
//function to add polynomials
public static Polynomial addPoly(Polynomial poly1, Polynomial poly2){
Polynomial tempPoly = new Polynomial();
//if poly1 exp is > poly 2 exp then power = poly 1 exp else power = poly 2 exp
int power = (poly1.front.getEx() > poly2.front.getEx()) ? poly1.front.getEx() : poly2.front.getEx();
while (power >=0){
Node n1 = poly1.front;
while (n1 != null){
if (n1.getEx() == power)
break;
n1 = n1.getNext();
}
Node n2 = poly2.front;
while (n2 != null){
if (n2.getEx() == power)
break;
n2 = n2.getNext();
}
if((n1 != null) && (n2 != null))
tempPoly.insert((n1.getCo() + n2.getCo()), n1.getEx());
else if (n1 != null)
tempPoly.insert(n1.getCo(), n1.getEx());
else if (n2 != null)
tempPoly.insert(n2.getCo(), n2.getEx());
power--;
}
return tempPoly;
}
public static Polynomial mulPoly(Polynomial poly1, Polynomial poly2){
Polynomial tempPoly = new Polynomial();
Node n1 = poly1.front;
while (n1 != null ){
Node n2 = poly2.front;
while(n2 != null){
tempPoly.mulInsert((n1.getCo()*n2.getCo()),(n1.getEx() + n2.getEx()));
n2 = n2.getNext();
}
n1= n1.getNext();
}
return tempPoly;
}
}
//driver
public class PolyDrive {
public static void main(String [] args){
Polynomial poly1 = new Polynomial();
Polynomial poly2 = new Polynomial();
Polynomial poly3 = new Polynomial();
Polynomial poly4 = new Polynomial();
int co;
int ex;
do {
co = poly1.readCoFx();
if(co != 0){
ex = poly1.readEx();
poly1.insert(co, ex);
}
//poly1.print();
} while (co != 0);
do {
co = poly2.readCoGx();
if(co != 0){
ex = poly1.readEx();
poly2.insert(co, ex);
}
//poly2.print();
} while (co != 0);
poly1.print();
poly2.print();
//poly3 = Polynomial.addPoly(poly1,poly2);
//poly3.print();
poly4 = Polynomial.mulPoly(poly1,poly2);
poly4.print();
}
}
If you are facing any programming issue, such as compilation errors or not able to find the code you are looking for.
Ask your questions, our development team will try to give answers to your questions.