- 1、本文档共111页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
双向循环链表的搜索算法 搜索成功 搜索不成功 first first 31 31 48 48 15 15 57 57 搜索15 ? ? ? 搜索25 ? ? ? ? 双向循环链表的搜索算法 template class T DblNodeT *DblListT::Search ( T x , int d ) { //在双向循环链表中寻找其值等于x的结点。 DblNodeT *current = (d == 0)? first-lLink : first-rLink; //按d确定搜索方向 while ( current != first current-data != x ) current = (d == 0) ? current-lLink : current-rLink; if ( current != first ) return current; //搜索成功 else return NULL; //搜索失败 }; 双向循环链表的插入算法 (非空表) newNode-rLink = current-rLink; current-rLink = newNode; newNode-rLink-lLink = newNode; newNode-lLink = current; first first 31 48 15 后插入25 current newNode 31 48 25 15 current 双向循环链表的插入算法 (空表) first 后插入25 current newNode 25 first current newNode-rLink = current-rLink (newNode-rLink = first); current-rLink = newNode; newNode-rLink -lLink = newNode; ( first-lLink = newNode ) newNode-lLink = current; 双向循环链表的插入算法 template class T bool DblListT::Insert ( int i, T x, int d ) { //建立一个包含有值x的新结点, 并将其按 d 指定的 //方向插入到第i个结点之后。 DblNodeT *current = Locate(i, d); //按d指示方向查找第i个结点 if ( current == NULL ) return false; //插入失败 DblNodeT *newNd = new DblNodeT(x); if (d == 0) { //前驱方向:插在第i个结点左侧 newNd-lLink = current-lLink; //链入lLink链 current-lLink = newNd; newNd-lLink-rLink = newNd; //链入rLink链 newNd-rLink = current; } else { //后继方向:插在第i个结点后面 newNd-rLink = current-rLink; //链入rLink链 current-rLink = newNd; newNd-rLink-lLink = newNd; //链入lLink链 newNd-lLink = current; } return true; //插入成功 }; 删除48 双向循环链表的删除算法 first first 非空表 31 48 15 current 31 15 current current-rLink-lLink = current-lLink; current-lLink-rLink = current-rLink; 双向循环链表的删除算法 template class T bool DblListT::Remove( int i, T x, int d ) { //在双向循环链表中按d所指方向删除第i个结点。 DblNodeT *current = Locate (i, d); if (current == NULL) return false; //删除失败 current-rLink-lLink = current-lLink; current-lLink-rLink = current-rL
您可能关注的文档
- 数据存储与共享.ppt
- 数据库6版讲稿第五章----高级SQL.ppt
- 数据库6版讲稿第六章----形式化关系查询语言.ppt
- 数据传输光缆项目.ppt
- Cowboy Culture(牛仔文化).pptx
- Copy of EHS Annual Trainning 2016.ppt
- 数据库ppt第1章2.ppt
- 数据备份、恢复和报表.ppt
- 数据库原理与应用试卷1.doc
- 数据库原理 实验六 数据库的备份与恢复new.doc
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)