带头节点的双向轮回链表(国外英文资料).docVIP

带头节点的双向轮回链表(国外英文资料).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
这是精心收集的精品经典资料,值得下载保存阅读!

带头节点的双向循环链表(国外英文资料) # include iostream 使用名称空间std; 模板类T 类DCChain; 模板类T 类DCChainIterator; 模板类T 类DCNode { 朋友类DCChain T ; 朋友类DCChainIterator T ; 私人: T数据; DCNode T *,*; }; # include“DCNode.h” # include iostream 使用名称空间std; 模板类T 类DCChainIterator; 模板类T 类DCChain { 朋友类DCChainIterator T ; 公众: DCChain(); ~ DCChain(); int长度();/ /不包括头结点的长度 bool找到(int k,T x);/ /寻找链表中第k个元素,并放入x DCChain T 插入(int k,const T x);/ /把x插入到第k个元素后 DCChain T 删除(int k,T x);/ /删除第k个元素,并把值放入x int搜索(const T x); 无效的输出(上ostream); 私人: DCNode T * HeadNode; }; 模板类T DCChain T ::DCChain() { HeadNode = new DCNode T ; HeadNode - 右= HeadNode; HeadNode - 左= HeadNode; } 模板类T DCChain T ::~ DCChain() { DCNode T * p *问; p = HeadNode - ; 而(p ! = HeadNode) { q = p - ; 删除p; p =; } HeadNode =零; } 模板类T DCChain T DCChain T ::插入(int k,const T x) { / /如果(k 0) / /把OutOfBounds(); DCNode T * p = HeadNode - ; for(int指数= 1;指数 kp;指数+ +) p = p - ; / /如果(p k 0 !) / /把OutOfBounds(); 新DCNode DCNode T * y = T ; y = x - 数据; y - = p - ; p - - 左= y; p - = y; y - 左= p; 返回*; } 模板类T DCChain T DCChain T ::删除(int k,T x) { / /如果(k 1 | | HeadNode - 右= HeadNode) / /把OutOfBounds; DCNode T * p = HeadNode - ; 如果(k = = 1) { HeadNode - 右= p - ; p - - 左= HeadNode; } 其他的 { DCNode T * q = HeadNode - ; for(int指数= 1;指数 k-1q;指数+ +) q = q - ; 如果(!问| | ! q - 右) 把OutOfBounds(); p = - ; q - 右= p - ; x = p - 数据; 删除p; 返回*; } } 模板类T int DCChain T ::长度() { int长度= 0; DCNode T * p = HeadNode - ; 而(p ! = HeadNode) { 长度+ +; p = p - ; } 返回长度; } 模板类T bool DCChain T ::找到(int k,T x) { 如果(k 1)返回false; DCNode T * p = HeadNode - ; int指数= 1; 而(指数 kp) { p = p - ; 指数+ +; } 如果(p) { x = p - 数据; 返回true; } 返回错误; } 模板类T int DCChain T ::搜索(const T x) { DCNode T * p = HeadNode - ; int指数= 1;而(pp - 数据! = x) { p = p - ; 指数+ +; } 如果(p)回报指数; 返回0; } 模板类T 空白DCChain T ::输出(上ostream位于) { DCNode T * p; (p = HeadNode - 右;p ! = HeadNode;p = p - ) p - 数据”“; } / /重载 模板类T 上ostream操作符 (上ostream,const DCChain T x) { x.Output(出); 返回; }

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档