- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单链表的结点类(ListNodeclass)和链表类(Listclass)的.doc
PAGE
第3章 链表
PAGE
PAGE 24
单链表的结点类(ListNode class)和链表类(List class)的类定义。
template class Type class List; //前视的类定义
template class Type class ListNode { //链表结点类的定义
friend class ListType; //List类作为友元类定义
private:
Type data; //数据域
ListNodeType *link; //链指针域
public:
ListNode ( ) : link (NULL) { } //仅初始化指针成员的构造函数
ListNode ( const Type item ) : data (item), link (NULL) { }
//初始化数据与指针成员的构造函数
ListNodeType * getNode ( const Type item, ListNodeType *next = NULL )
//以item和next建立一个新结点
ListNodeType * getLink ( ) { return link; } //取得结点的下一结点地址
Type getData ( ) { return data; } //取得结点中的数据
void setLink ( ListNodeType * next ) { link = next; } //修改结点的link指针
void setData ( Type value ) { data = value; } //修改结点的data值
};
template class Type class List { //单链表类定义
private:
ListNodeType *first, *current; //链表的表头指针和当前元素指针
public:
List ( const Type value ) { first = current = new ListNodeType ( value ); }
//构造函数
~List ( ) { MakeEmpty ( ); delete first; } //析构函数
void MakeEmpty ( ); //将链表置为空表
int Length ( ) const; //计算链表的长度
ListNodeType * Find ( Type value ); //搜索含数据value的元素并成为当前元素
ListNodeType * Locate( int i ); //搜索第i个元素的地址并置为当前元素
Type * GetData ( ); //取出表中当前元素的值
int Insert ( Type value ); //将value插在表当前位置之后并成为当前元素
Type *Remove ( ); //将链表中的当前元素删去, 填补者为当前元素
ListNodeType * Firster ( ) { current = first; return first; } //当前指针定位于表头结点
Type *First ( ); //当前指针定位于表中第一个元素并返回其值
Type *Next ( ); //将当前指针进到表中下一个元素并返回其值
int NotNull ( ) { return current != NULL; } //表中当前元素空否?空返回1, 不空返回0
int NextNotNull ( ) { return current != NULL current-link != NULL; }
//当前元素下一元素空否?空返回1, 不空返回0
};
3-1线性表可用顺序表或链表存储。试问:
(1) 两种存储表示各有哪些主要优缺点?
(2) 如果有n个表同时并存,并且在处理过程中各表的长度会动态发生变化,表的总数也可能自动改变、在此情况下,应选用哪种存储表示?为什么?
(3) 若表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取表中的元素,这时,应采用哪种
您可能关注的文档
- 3国立联合大学资讯管理学系资料探勘课程.ppt
- 3对象多分辨率模型构建-中国图象图形学报.doc
- 分类名永磁直流行星齿轮减速电机产品名称ZGX50R.doc
- 3月11日发表人陈诗婷-大叶大学-人力资源暨公共关系学系.ppt
- 3)运作性修饰符.ppt
- 3.程序的设计思路与实现.doc
- 4-2影响植物生长的因素.ppt
- 4.1系统用户管理模块设计.ppt.ppt
- 4.2-4.4视图、存储过程、触发器.ppt.ppt
- 4.2.2二维阵列初值设定.ppt
- Haier海尔413升风冷变频多门冰箱 BCD-413WGHFD1BSJU1(白)说明书用户手册.pdf
- Siemens西门子工业抽屉式断路器主回路后垂直连接 抽屉式断路器主回路后垂直连接使用手册.pdf
- Samsung三星智能佩戴设备 Galaxy Fit3安全手册.pdf
- Samsung三星滚筒洗衣机 AI神 黑钻热泵洗烘旗舰 WD18DB8995BZSC使用手册.pdf
- Sakura樱花消毒柜 保洁柜消毒柜 SCQ-130D6用户手册说明书.pdf
- Hifiman头领科技ARYA UNVEILED说明书用户手册.pdf
- Siemens西门子工业抽屉式主回路连接前置端子 支撑件 抽屉式主回路连接前置端子 支撑件使用手册.pdf
- Siemens西门子工业中性线的外部电流传感器 中性线的外部电流传感器使用手册.pdf
- Siemens西门子工业电子脱扣单元 电子脱扣单元使用手册.pdf
- Razer雷蛇Playstation 专用雷蛇战锤狂鲨极速版 RZ12-038203 用户指南 (简体中文)说明书用户手册.pdf
最近下载
- 腰椎的解剖及腰部的层次解剖ppt参考课件.ppt
- 知识产权助推新质生产力发展.pptx VIP
- NB∕T 10805-2021 水电工程溃坝洪水与非恒定流计算规范.pdf
- 2022年鄄城县工会系统招聘考试题库及答案解析.docx VIP
- 2024年医师定期考核必考题库及答案.pdf
- 2023年互联网信息审核员理论考试题库(含答案).pdf VIP
- 2024中考语文《西游记》历年真题专练(学生版+解析版).pdf VIP
- 高中音乐鉴赏测试题.doc VIP
- 人教三上数学《数学广角—集合》单元作业设计方案(13页).pdf VIP
- 省级政府和重点城市一体化政务服务能力调查评估报告2021年.pdf VIP
文档评论(0)