



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
有序线性表/file:sortedChain.h#ifndef _SORTEDCHAIN_H_#define _SORTEDCHAIN_H_#include sortedChainNode.h#include exception.htemplate class SortedChainpublic:SortedChain()first = 0;SortedChain();bool IsEmpty() const return first = 0;int Length() const;bool Search(const K& k,E& e) const;SortedChain& Delete(const K& k,E& e);SortedChain& Insert(const E& e);SortedChain& DistinctInsert(const E& e);void Output(ostream& out) const;private:SortedChainNode *first;template SortedChain:SortedChain()SortedChainNode *next;while(first)next = first-link;delete first;first = next;template int SortedChain:Length() constSortedChainNode *current = first;int len = 0;while(current)len+;current = current-link;return len;template bool SortedChain:Search(const K& k,E& e) const/搜索与k匹配的元素,结果放入e /如果没有匹配的元素,则返回falseSortedChain *p = first;/搜索与k相匹配的元素for(;p & p-data link);/验证是否与k相匹配if(p & p-data = k)/与k相匹配e = p-data;return true;return false;/不存在相匹配的元素template SortedChain& SortedChain:Delete(const K& k,E& e)/删除与k相匹配的元素 /并将被删除的元素放入e /如果不存在匹配元素,则引发异常BadInputSortedChainNode *p = first,*tp = 0;/跟踪p/搜索与k相匹配的元素for(;p & p-data link);/验证是否与k相匹配if(p & p-data = k)/找到一个相匹配的元素e = p-data;/保存data域/从链表中删除p所指向的元素if(tp)tp-link = p-link;elsefirst = p-link;/p是链首节点delete p;return *this;throw BadInput();/不存在相匹配的元素template SortedChain& SortedChain:Insert(const E& e)/如果表中不存在关键值与e相同的元素,则插入e /否则引发异常BadInputSortedChainNode *p = first,*tp = 0;/跟踪p/移动tp以便把e插入到tp之后for(;p & p-data link);/若没有出现重复关键值,则产生一个关键值为e的新节点SortedChainNode *q = new SortedChainNode;q-data = e;/将新节点插入到tp之后q-link = p;if(tp)tp-link = q;elsefirst = q;return *this;template SortedChain& SortedChain:DistinctInsert(const E& e)/如果表中不存在关键值与e相同的元素,则插入e /否则引发异常BadInputSortedChainNode *p = first,*tp = 0;/跟踪p/移动tp以便把e插入到tp之后for(;p & p-data link);/检查关键值是否重复if(p & p-data = e)throw BadInput();/若没有出现重复关键值,则产生一个关键值为e的新节点SortedChainNode *q = new SortedChainNode;q-data = e;/将新节点插入到tp之后q-link = p;if(tp)tp-link = q;elsefirst = q;return *this;template void Chain:Output(ostream& out) constSortedChainNode *current;for(current = first;current;current = current-link)outdata ;template ostream& operator(ostream& out,const SortedChain& x)x.Output(out);return out;#endif/file:sortedChainNode.h#ifndef _SORTEDCHAINNODE_H_#define _SORTEDCHAINNODE_H_templateclass SortedChain;templateclass SortedChainNodefriend SortedChain;public:SortedChainNode()data = 0;link = NULL;SortedChainNode(E x)data = x;link = NULL;private:E data;SortedChainNode *link;#endif/file:exception.h#ifndef _EXCEPTION_H_#define _EXCEPTION_H_#include class NoMem public: NoMem() ;int my_new_h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司环境与安全培训课件
- 行政人事转正工作总结
- 卤菜店铺转让合同6篇
- 新农村建设工作总结
- 《祖国在我心中》课件
- 2025建筑施工租赁合同范本
- 解读义务教育均衡发展
- 第二季度护理工作总结
- 广东省肇庆市德庆县2022-2023学年高三上学期期中考试地理题库及答案
- 广东省汕头市金平区2023-2024学年高二上学期第二次月考思想政治试题及答案
- (2025年标准)教师定岗协议书
- 8 回忆鲁迅先生(课件)语文统编版2024八年级上册
- 2025年蜀道投资集团有限责任公司招聘笔试备考题库附答案详解(达标题)
- 美术基础 课件 第1、2章 美术简介;素描
- 2025年廉价航空行业研究报告及未来发展趋势预测
- 新能源企业盈利能力分析-以比亚迪股份有限公司为例
- 国家奖学金申请答辩汇报
- 2025年“学宪法讲宪法”知识竞赛题库含答案
- 2024年辽宁省地矿集团招聘真题
- 2025年绿化工技师试题及答案
- 【《基于哈佛分析框架的爱尔眼科公司财务分析(数据图表论文)》13000字】
评论
0/150
提交评论