so I am trying do this problem involving linked lists where i need to basically make 2 linked lists each representing a polynomial.
I got all that down... now I need to make a function to add the two polynomials and this is where i got stuck. I have the code but I keep getting the "cannot find symbol" error when I compile... any tips?
//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);
}
}
}
//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.getEx() > poly2.getEx()) ? poly1.getEx() : poly2.getEx();
while (power >=0){
Node n1 = poly1.setNext(front);
while (n1 != null){
if (n1.getEx() == power)
break;
n1 = n1.getNext();
}
Node n2 = poly2.setNext(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;
}
}
//driver
public class PolyDrive {
public static void main(String [] args){
Polynomial poly1 = new Polynomial();
Polynomial poly2 = new Polynomial();
Polynomial poly3 = 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.addPoly(poly1,poly2);
}
}