ha = GetHead(Pa); hb = GetHead(Pb); qa = NextPos(ha); qb = NextPos(hb); while(!ListEmpty(*Pa) && !ListEmpty(*Pb) && qa) { a = GetCurElem(qa); b = GetCurElem(qb); switch(cmp(a, b)) { case -1: //Pa中的值较小 ha = qa; qa = NextPos(qa); //ha和qa均向后移动一个结点 break; case 0: //Pa和Pb中指数相等 qa->data.coef += qb->data.coef; if(qa->data.coef) { ha = qa;}
1、没有指明这段程序的功能;
2、代码不全;
从仅有的代码看,是从Pa、Pb中取值进行比较,如果Pa中的小,则继续;如果相等,则取Pb中的coef加到Pa中,后续代码缺失。
ha应该是记录当前位置,ha=qa是更新当前位置到下一个位置