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

相关参考

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

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

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

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

知识大全 数据结构之单链表基本运算的实现[2]

  销毁单链表  单链表被构造使用完后由于其结点均为动态分配的内存空间所以必须要销毁以释放空间否则会造成申请的内存不能释放单链表的销毁操作是创建操作的逆运算由于要修改单链表的头指针的指针变量所以要将头

知识大全 数据结构之单链表基本运算的实现[14]

  图双向链表中的结点删除  双向链表的结束条件和单链表相同双向循环链表的结束条件和单向循环链表的结束条件相同  静态链表  根据上节单链表的知识用单链表表示线性表时其结点空间是在运行时根据需要动态分

知识大全 数据结构之单链表基本运算的实现[1]

  单链表基本运算的实现  创建空单链表  链表与顺序表不同它是一种动态管理的存储结构链表中的每个结点占用的存储空间不是预先分配而是运行时系统根据需求生成的因此建立空单链表就是建立一个带头结点的空表该

知识大全 数据结构之单链表基本运算的实现[3]

  求表长  由于单链表采用离散的存储方式并且没有显示表长的存储信息因此要求出单链表的表长必须将单链表遍历一遍  算法思路设一个移动指针p和计数器count初始化后p指向头结点p后移一个结点count

知识大全 数据结构之单链表基本运算的实现[10]

  循环链表  对于单链表而言最后一个结点的指针域是空指针如果将该链表头指针置入该指针域则使得链表头尾结点相连就构成了循环单链表(也称单循环链表)如图所示  >  图带头结点的单循环链表  对循环单链

知识大全 线性表 - 链式存储结构- 单链表的运算(一)

  单链表的运算  建立单链表  假设线性表中结点的数据类型是字符我们逐个输入这些字符型的结点并以换行符\\n为输入条件结束标志符动态地建立单链表  的常用方法有如下两种  ()头插法建表  ①算法思

知识大全 算法大全-面试题-数据结构(收录)

一单链表目录单链表反转找出单链表的倒数第个元素找出单链表的中间元素删除无头单链表的一个节点两个不交叉的有序链表的合并有个二级单链表其中每个元素都含有一个指向一个单链表的指针写程序把这个二级链表称一级单

知识大全 数据结构之单链表基本运算的实现[12]

  双向链表结点的定义如下  typedefstructnode  DataTypedata;  structnode*prior*next;  DuNode*DLinkList;  和单链表类似双向