数据结构中的线性表剖析
* 双向循环链表的插入算法 (空表) 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
您可能关注的文档
最近下载
- 传统基材润湿流平(氟碳硅烷嵌段).pdf VIP
- 南京财经大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- C4D课程考试试题及参考答案.doc VIP
- 2025年陕西公务员申论考试真题及答案B卷.docx VIP
- [渝粤教育] 西北工业大学 航天器控制原理 mooc 资料.docx VIP
- 航天器控制原理(西北工业大学)中国大学MOOC 慕课 章节测验 期末考试答案.pdf VIP
- 精品解析:2025年陕西省中考数学试题(原卷版).docx VIP
- 四维度主力跟踪.pdf
- 2022年陕西省中考数学真题(原卷版).docx VIP
- 大众网关控制器和bcm车身控制模块针脚定义非常有用.pdf VIP
原创力文档

文档评论(0)