java语言用链表实现多项式减法代码 运行结果总是不对!//多项式减法:Pa=Pa-Pb,利用两个多项式的结点构成“差多项式”,并返回LA\x09public PolynList subPolyn(PolynList LA,PolynList LB){\x09\x09Node ha=LA.getHead
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/23 16:20:31
![java语言用链表实现多项式减法代码 运行结果总是不对!//多项式减法:Pa=Pa-Pb,利用两个多项式的结点构成“差多项式”,并返回LA\x09public PolynList subPolyn(PolynList LA,PolynList LB){\x09\x09Node ha=LA.getHead](/uploads/image/z/6925031-71-1.jpg?t=java%E8%AF%AD%E8%A8%80%E7%94%A8%E9%93%BE%E8%A1%A8%E5%AE%9E%E7%8E%B0%E5%A4%9A%E9%A1%B9%E5%BC%8F%E5%87%8F%E6%B3%95%E4%BB%A3%E7%A0%81+%E8%BF%90%E8%A1%8C%E7%BB%93%E6%9E%9C%E6%80%BB%E6%98%AF%E4%B8%8D%E5%AF%B9%21%2F%2F%E5%A4%9A%E9%A1%B9%E5%BC%8F%E5%87%8F%E6%B3%95%EF%BC%9APa%3DPa-Pb%2C%E5%88%A9%E7%94%A8%E4%B8%A4%E4%B8%AA%E5%A4%9A%E9%A1%B9%E5%BC%8F%E7%9A%84%E7%BB%93%E7%82%B9%E6%9E%84%E6%88%90%E2%80%9C%E5%B7%AE%E5%A4%9A%E9%A1%B9%E5%BC%8F%E2%80%9D%2C%E5%B9%B6%E8%BF%94%E5%9B%9ELA%5Cx09public+PolynList+subPolyn%28PolynList+LA%2CPolynList+LB%29%7B%5Cx09%5Cx09Node+ha%3DLA.getHead)
java语言用链表实现多项式减法代码 运行结果总是不对!//多项式减法:Pa=Pa-Pb,利用两个多项式的结点构成“差多项式”,并返回LA\x09public PolynList subPolyn(PolynList LA,PolynList LB){\x09\x09Node ha=LA.getHead
java语言用链表实现多项式减法代码 运行结果总是不对!
//多项式减法:Pa=Pa-Pb,利用两个多项式的结点构成“差多项式”,并返回LA
\x09public PolynList subPolyn(PolynList LA,PolynList LB){
\x09\x09Node ha=LA.getHead(); //ha指向新形成链表的尾结点
\x09\x09Node qa=LA.getHead().getNext(); //qa指向LA中需要计算的当前项
\x09\x09Node qb=LB.getHead().getNext(); //qb指向LB中需要计算的当前项
\x09\x09
\x09\x09while(qa!=null&&qb!=null){ //qa和qb同时非空
\x09\x09\x09PolynNode a=(PolynNode)qa.getData();
\x09\x09\x09PolynNode b=(PolynNode)qb.getData();
\x09\x09\x09double b1=b.getCoef();
\x09\x09\x09double b2=0-b1;
\x09\x09\x09b.setCoef(b2);
\x09\x09\x09
\x09\x09\x09switch(cmp(a,b)){
\x09\x09\x09\x09case -1://多项式LA中当前结点的指数值小
\x09\x09\x09\x09\x09ha.setNext(qa);
\x09\x09\x09\x09\x09ha=qa;
\x09\x09\x09\x09\x09qa=qa.getNext();
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09\x09
\x09\x09\x09\x09case 0://两者的指数值相等
\x09\x09\x09\x09\x09double dif=a.getCoef() + b.getCoef(); //求系数的差
\x09\x09\x09\x09\x09if(dif!=0.0){ //修改多项式LA中当前结点的系数值
\x09\x09\x09\x09\x09\x09a.setCoef(dif);
\x09\x09\x09\x09\x09\x09ha.setNext(qa);
\x09\x09\x09\x09\x09\x09ha=qa;
\x09\x09\x09\x09\x09\x09qa=qa.getNext(); //指向下一结点
\x09\x09\x09\x09\x09\x09qb=qb.getNext();
\x09\x09\x09\x09\x09}
\x09\x09\x09\x09\x09else{ //删除多项式LA中的当前项
\x09\x09\x09\x09\x09\x09qa=qa.getNext(); //指向下一结点
\x09\x09\x09\x09\x09\x09qb=qb.getNext();
\x09\x09\x09\x09\x09}
\x09\x09\x09\x09\x09break;
\x09\x09\x09\x09\x09
\x09\x09\x09\x09case 1://多项式LB当前结点的指数值小
\x09\x09\x09\x09\x09ha.setNext(qb);
\x09\x09\x09\x09\x09ha=qb;
\x09\x09\x09\x09\x09qb=qb.getNext();
\x09\x09\x09\x09\x09break;
\x09\x09\x09}
\x09\x09}
\x09\x09ha.setNext(qa!=null?qa:qb); //插入剩余结点
\x09\x09return LA;
\x09}
减法运算如上,编译没问题,但是运行结果明显算的不对,请问哪里出错了呀?
java语言用链表实现多项式减法代码 运行结果总是不对!//多项式减法:Pa=Pa-Pb,利用两个多项式的结点构成“差多项式”,并返回LA\x09public PolynList subPolyn(PolynList LA,PolynList LB){\x09\x09Node ha=LA.getHead
对于多项式减法,不是很了解,不过 你先把b的coef设为负数,然后再进行比较,这样的比较结果还会正确吗?