数据结构中的线性表.ppt

  1. 1、本文档共117页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构中的线性表

* 双向循环链表的插入算法 (空表) 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, class E bool DblListT, E::Insert ( int i, E x, int d ) { //建立一个包含有值x的新结点, 并将其 //按 d 指定的方向插入到第i个结点之后。 DblNodeT, E *current = Locate(i, d); //按d指示方向查找第i个结点 if ( current == NULL ) return false; //插入失败 DblNodeT,E *newNd = new DblNodeT,E(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, class E bool DblListT, E::Remove( int i, E x, int d ) { //在双向循环链表中按d所指方向删除第i个结点。 DblNodeT, E *current = Locate (i, d); if (current == NULL) return false; //删除失败 current-rLink-lLink = current-lLink; current-lLink-rLink = current-rLink; //从lLink链和rLink链中摘下 x = current-data; delete current; //删除 return true; //删除成功 }; 链表的时间复杂度总结 操作 时间复杂度 在指定位置插入 O(n) 在指定位置删除 O(n) 搜索指定元素 O(n) 访问指定位置元素 O(n) 与顺序表相比,优点主要体现在,在指定位置插入和删除元素时,只涉及到插入位置局部元素的指向链接更改,而不像顺序表需要进行数组大范围元素的移位操作。 list 使用双向链表管理元素 list的元素可以是任意类型T,但须具备赋值和拷贝能力 必须包含的头文件#include list list不支持随机存取,因此不提供下标操作符 在任何位置上执行元素的安插和移除都非常快。 安插和删除不会导致指向其他元素的指针、引用、iterator失效。 STL容器 STL容器 list 构造、拷贝和析构 操作 效果 listT c· 产生空的list listT c1(c2) 产生同类型的c1,并将复制c2的所有元素 listT c(n) 利用类型T的默认构造函数和拷贝构造函数生成一个大小为n的l

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档