知识大全 数据结构学习讲座(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相关参考