CH11-其他链表讲诉.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章 其他链表结构 带头节点的链表 在列表头部引入一个伪首节点来保证每个列表元素节点都有前驱。这个节点称为头节点 判空:first==0改为first-next==0 指向头节点的辅助指针: ptr=first改为ptr=first-next 因为每个节点都有前驱,所以简化插入删除操作: 头节点数据部分未定义,可以存放和列表相关的信息。 稀疏多项式链式实现 一元多项式P(x): 稀疏多项式链式实现 稀疏多项式链式实现 稀疏多项式链式实现 template class CoefType class Polynomial { private: class Term // Term class { public: CoefType coef; int expo; }; class Node //Node class { public: Term data; Node * next; 稀疏多项式链式实现 稀疏多项式链式实现 稀疏多项式链式实现 稀疏多项式链式实现 稀疏多项式链式实现 双向链表 节点除了数据部分外,还包含2个指针域 用这样的节点构建的链表称为双向链表 双向链表 插入节点 先设置被插入节点的前指针和后指针分别指向它的前驱和后继。 然后,设置其前驱节点的后指针和其后继节点的前指针指向这个新节点。 双向链表 删除节点 重置被删除节点的前驱节点 的后指指针和它的后继节点的前指指针。 C++ list C++ list 比vector提供的随机访问迭代器弱 提供的操作: ++、--、*、=、==/!= 无:+、-、+=、-=、[] 函数:P537-538 C++ list C++ list C++ list C++ list C++ list C++ list 其他链列表 根据学生的名字和学号来对学生记录进行排序。 使用单个列表根据不同的次序使用多条链来链接节点。 其他链列表 二维数组 循环链表数组 单循环链表 行头节点链表 十字链表 其他链列表 将矩阵的每一行表示成为一个链表,链表中只存放非零项,矩阵用指针数组表示。 其他链列表 每个节点包含行号,列号,该行和列中的非零项,以及指向下一节点的链。头节点存放矩阵维数。 其他链列表 把指针数组替换成一个行头节点链表,每个行头节点包含一个指向一个非空行列表的指针,还包含该行的行号和指向下一行头节点的指针,且行头节点按行号排序。 其他链列表 一种能够访问矩阵的行和列的链式结构。其中每个节点保存行号,列号以及处于该行和该列中的非零项。 行列表和列列表都是带头节点的循环链表。 其他链列表 广义表通常用链表来表示,其中每个节点除了一个数据域和一个链域外,还有一个标志域。 广义表--元素本身也允许是列表的列表 1 5 p 1 0 0 14 2 1 7 0 3 0 0 7 1 0 25 0 0 -9 2 0 18 6 * * first ? 9 17 22 26 34 first ? 空表 带头节点的链表 程序中相应的条件修改: first ? 9 17 22 26 34 5 newptr preptr newptr-next=preptr-next; preptr-next=newptr; 插入第1个节点 first ? 9 17 22 26 34 preptr preptr-next=ptr-next; delete ptr; ptr=preptr-next; 带头节点的链表 删除第1个节点 ptr ptr myDegree 5 myCoeffs 5 7 0 -8 0 4 0 0 0 0 0 1 2 3 4 5 6 7 8 9 一般没有大量的零系数可以用数组描述 多项式类: (Polynomial) 大量零系数的多项式会造成数组空间的浪费。 使用系数-幂对组成的列表来表示多项式。 myDegree 99 myCoeffs 5 0 0 0 0 0 0 0 0 0 0 1 2 3 4 5 6 7 8 9 … 99 … 0 1 myDegree 99 myTerms 5 0 1 99 0 1 数组元素类型由int改为Term 数组的容量是固定的,限制列表的大小。 myDegree 5 myTerms 5 0 7 1 0 1 2 3 -8 3 4 5 使用系数

文档评论(0)

4477704 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档