知识大全 数据结构学习讲座(C++) 单链表(3)

Posted 多项式

篇首语:最强的人并不一定都是成功的人,却一定是在他们失去之时不放弃的人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据结构学习讲座(C++) 单链表(3)相关的知识,希望对你有一定的参考价值。

数据结构学习讲座(C++) 单链表(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

单链表( )

下面将完成单链表的赋值运算的重载 请把这部分加到List类的public部分 的确 这部分也可以放在多项式类里实现 但是 复制一个多项式实际上就是复制一个单链表 与其单单做一个多项式赋值 还不如完成单链表的赋值 让派生类都能共享

operator = (const List<Type> &l) MakeEmpty(); for (Node<Type> *p = l first >link; p != NULL; p = p >link) LastInsert(p >data); 

  还记得List类的private里面的这个List(const List<Type> &l)吗?当初怕它惹祸 直接将它禁用了 既然现在=都能用了 为了这种语法List<Type> b = a;顺便也把它完成了吧 现在可以把它从private放到public了

List(const List<Type> &l) first = current = last = new Node<Type>; prior = NULL; for (Node<Type> *p = l first >link; p != NULL; p = p >link) LastInsert(p >data);

  终于可以这样写了a = b + c * d

friend Polynomial operator + (Polynomial &polyA Polynomial &polyB) Polynomial tempA = polyA;Polynomial tempB = polyB; PolyAdd(tempA tempB); return tempA;

friend Polynomial operator * (Polynomial &polyA Polynomial &polyB) Node<Term> *pA = polyA pGetFirst() >link; Node<Term> *pB = polyB pGetFirst() >link; Polynomial polyTempA polyTempB; int coef exp; if (pA == NULL || pB == NULL) return polyTempA; for (pA = polyA pGetFirst() >link; pA != NULL; pA = pA >link)   for(pB = polyB pGetFirst() >link; pB != NULL; pB = pB >link)     coef = pA >data coef * pB >data coef;   exp = pA >data exp + pB >data exp;   Term term(coef exp);   polyTempB LastInsert(term);    PolyAdd(polyTempA polyTempB);  polyTempB Initialize();  return polyTempA;

cha138/Article/program/sjjg/201311/22942

相关参考