📄 polynomial.java
字号:
package me;
import java.util.LinkedList;
import java.util.ListIterator;
class Polynomial{
Polynomial(){
linkList=new LinkedList<Term>();
}
Polynomial(LinkedList<Term> linkList){
this.linkList=linkList;
}
void addTerm(Term term){
ListIterator<Term> it=linkList.listIterator();
if(linkList.isEmpty()){
linkList.addFirst(term);
return ;
}
while(it.hasNext()){
Term t=it.next();
if(term.compareTo(t)<0){
it.previous();
it.add(term);
return;
} else if(term.compareTo(t)==0){
if(t.getCoef()+term.getCoef()==0){
it.remove();
return;
} else{
it.set(new Term((t.getCoef()+term.getCoef()),t.getExpn()));
return;
}
}
}
it.add(term);
}
private void subtractTerm(Term t){
t.setCoef(-t.getCoef());
addTerm(t);
}
private void multiplyTerm(Term t){
ListIterator<Term> it=linkList.listIterator();
while(it.hasNext()){
Term term=it.next();
float c=term.getCoef()*t.getCoef();
int e=term.getExpn()+t.getExpn();
it.set(new Term(c,e));
}
}
public Polynomial clone(){
LinkedList<Term> l=new LinkedList();
ListIterator<Term> it=linkList.listIterator();
while(it.hasNext()){
Term t=new Term(it.next());
l.add(t);
}
return new Polynomial(l);
}
void addPoly(Polynomial p){
ListIterator<Term> it=p.getLinkList().listIterator();
while(it.hasNext()){
addTerm(it.next());
}
}
void subtractPolyn(Polynomial p){
ListIterator<Term> it=p.getLinkList().listIterator();
while(it.hasNext()){
subtractTerm(it.next());
}
}
void multiplyPolyn(Polynomial p){
ListIterator<Term> it=p.getLinkList().listIterator();
Polynomial temp=new Polynomial();;
while(it.hasNext()){
Polynomial px=this.clone();
px.multiplyTerm(it.next());
temp.addPoly(px);
}
linkList=temp.getLinkList();
}
LinkedList getLinkList(){
return linkList;
}
private LinkedList<Term> linkList;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -