顺序表应用之多项式求和

来源:互联网 发布:飞龙签名设计软件 编辑:程序博客网 时间:2024/06/02 16:05

上课布置的作业中只有思路和注释,具体下载地址见之前博客中的数据结构课程资源,这里给出解答

public static SeqList polyAdd(SeqList list1, SeqList list2) {//result存放结果SeqList result = new SeqList();//pos1指向当前list1元素的位置,这个位置会不断变化,初始值为1,pos2则指向当前list2元素的位置int pos1 = 1, pos2 = 1;int len1 = list1.getLength();int len2 = list2.getLength();//还有用到其他变量,在这里声明这些变量,你意识到要用到这些变量时再来声明PElem e1, e2, e3;int exp1, exp2;while (pos1 <= len1 && pos2 <= len2) {//e3为要放置在result中的新项,该项目前的系数和幂都是默认值0e3 = new PElem();//取出list1中第pos1个元素出来,赋值给e1,取出list2中第pos2个元素出来,赋值给e2e1 = (PElem) list1.getElement(pos1);e2 = (PElem) list2.getElement(pos2);//取出e1中的幂,e2中的幂,来作比较exp1 = e1.getExp();exp2 = e2.getExp();//如果e1的幂>e2的幂,则将e1中的系数和幂分别赋值给e3中的系数和幂,且pos1++,即指向后一个位置,并且将e3添加(调用add)到result中//如果e1的幂<e2的幂,则将e2中的系数和幂分别赋值给e3中的系数和幂,且pos2++,即指向后一个位置,并且将e3添加(调用add)到result中//如果e1的幂==e2的幂,则将e1中的系数加上e2的系数赋值给e3中的系数,e1的幂赋值给e3的幂,且pos1++,pos2++,即都指向后一个位置,并且将e3添加(调用add)到result中if (exp1 > exp2) {e3.setCoefficent(e1.getCoefficent());e3.setExp(exp1);pos1++;} else if (exp1 == exp2) {e3.setCoefficent(e1.getCoefficent() + e2.getCoefficent());e3.setExp(exp1);pos1++;pos2++;} else {e3.setCoefficent(e2.getCoefficent());e3.setExp(exp2);pos2++;}result.add(e3);}while (pos1 <= len1) { //意味着list1还没有结束,那么将list1剩余各项的系数和幂赋值到到e3项中,并且将e3添加(调用add)到result中e3 = new PElem();e1 = (PElem) list1.getElement(pos1);e3.setCoefficent(e1.getCoefficent());e3.setExp(e1.getExp());result.add(e3);pos1++;}while (pos2 <= len2) {//意味着list2还没有结束,那么将list2剩余各项的系数和幂赋值到到e3项中,并且将e3添加(调用add)到result中e3 = new PElem();e2 = (PElem) list2.getElement(pos2);e3.setCoefficent(e2.getCoefficent());e3.setExp(e2.getExp());result.add(e3);pos2++;}return result;}


0 0
原创粉丝点击