C++ 数据结构(三)列表(3)有序列表
来源:我的博客站 OceanicKang |《C++ 数据结构(三)列表(3)有序列表》
上一篇:《C++ 数据结构(三)列表(2)无序列表》
唯一化
template <typename T>
int List<T>::uniquify() { // 成批剔除重复元素if (_size < 2) return 0; // 平凡列表自然无重复int oldSize = _size; // 记录原规模ListNodePosi(T) p = first(); ListNodePosi(T) q; // p 为各区段起点,q 为其后继while (trailer != (q = p -> succ)) // 反复考查紧邻的节点对(p, q)if (p -> data != q -> data) p = q; // 若互异,则转向下一区段else remove(q); // 否则(雷同),删除后者return oldSize - _size; // 规模变化量,即被删除元素总数
} // 只需遍历整个列表一趟,O(n)
查找
template <typename T> // 在有序列表内节点 p 的 n 个(真)前驱中,找到不大于 e 的最后者
Posi(T) List<T>::search(T const &e, int n, Posi(T) p) const {while (0 <= n--) // 对于 p 的最近的 n 个前驱,从右向左if (((p = p -> pred) -> data) <= e) break; // 逐个比较return p; // 直至命中、数值越界或范围越界后,返回查找终止的位置
} // 最好 O(1),最坏 O(n);等概率时平均 O(n),正比于区间宽度
下一篇:《C++ 数据结构(三)列表(4)选择排序》
C++ 数据结构(三)列表(3)有序列表相关推荐
- HTML的基本知识(五)——无序列表、有序列表、自定义列表
HTML的基本知识(五)--无序列表.有序列表.自定义列表 茫茫人海,有多少擦肩而过?漫漫一生,有多少真诚守候? 很开心能在CSDN与你相遇.相知.相惜.相守.一个人只有不断地写作,才能才不被人海湮没 ...
- HTML标签的基本使用:无序列表、有序列表、定义列表
无序列表.有序列表.定义列表 列表是由一组标签组成 一.无序列表 没有顺序的列表结构 由ul和li标签组成 ul:unordered list(无序列表) li:list item(列表项) < ...
- HTML无序列表、有序列表、自定义列表标签的基本知识
今天的文章主要讲述HTML无序列表.有序列表.自定义列表标签的基本知识,和在网页中的效果 一.列表的应用场景 场景: 在网页中按照行展示关联性的内容,如:新闻列表.排行榜.账单等 特点: 按照行的方式 ...
- 代码中如何让无序标记的内容并排_英语技术文档中如何正确使用无序列表和有序列表?...
Foreword 之前跟大家分享过英语技术文档中如何正确使用时态和英语技术文档中如何正确使用人称,这一篇再跟大家分享一下如何正确使用无序列表和有序列表. 其实,在技术文档中,除了无序列表和有序列表,另 ...
- HTML6(无序列表,有序列表和自定义列表)
列表是用来布局的,列表最大的特点就是整齐,有序,它作为布局会更加方便简洁.主要分为三大类,无序列表,有序列表和自定义列表. 无序列表<ul>: <ul>标签表示HTML页面项目 ...
- 表格标签,今日小说排行榜案例,合并单元格,无序列表,有序列表,自定义列表,表单标签,注册页面综合案例
表格标签 表格主要用于展示数据 <table><tr><td>单元格内的文字</td>...</tr>... </table> ...
- 无序列表,有序列表,自定义列表
无序列表-没有顺序的一组内容 语法:<ul> 定义无序列表 <li></li> (列表项) </ul> 语义:用于将没有数字顺序的一组内容或数据进行 ...
- 无序列表和有序列表可以相互嵌套吗?
在学习列表的嵌套之前,想先问一下小伙伴们: 无序列表和有序列表可以相互嵌套吗? 带着你的问题我们看一下无序列表和有序列表是否可以嵌套. (如果之前的内容你已经学习完,可以直接下拉到文章的最后学习新的知 ...
- 今天学习了无序列表和有序列表和使用HTML5创建表格
ol建立有序列表,该列表可以用设置type="A/a" 其语法架构为 <ol> <li></li> <li></li> ...
- html 有序无序列表,无序列表、有序列表和定义列表
一.html无序列表 无序列表是一个没有顺序的列表项目,在各条列前面使用●□◇◆等符号以示区隔. html无序列表始于 标签.每个列表项始于 :无序列表的type属性有三个数值可选,这三个选项分别为: ...
最新文章
- 【数据结构】关键路径
- linux arm下硬件驱动程序放哪里,Arm-Linux摄像头驱动程序的移植
- linux下svn常用指令(转)
- 在tornado里面使用reverse_url
- 54. 二叉搜索树的第k大节点
- 如何把备份的bak还原到新的数据库
- ToolTip特效 JavaScript 盗取厦门人才网的特效
- ConceptDraw Office Pro v8.0.2 Keygen
- 如何用 Python 识别车牌?
- Java项目大合集练手项目经验
- 如何使用RDP报表工具预览页面可以出现完整数据而不是只显示一条
- 看球二三事 - 世界杯征文
- 在线文档 - Google 文档的数据协议设计
- 《程序员》杂志 · 2017 精华本
- win 64 安装 sql server 2000、出现挂起 解决
- CAD命令行不见了怎么重新恢复?
- 解决PHP7中微信(小程序)mcrypt_module_open() 无法使用的解决方法
- Pet包 资源 Linux,PET文件扩展名 - 什么是.pet以及如何打开? - ReviverSoft
- 手机里微信更换了头像电脑没同步
- Suzy找到实习了吗Day 14 | 二叉树开始啦 二叉树的分类、定义、遍历方法
热门文章
- 阿里最新秋招面经,腾讯/美团/字节1万道Java中高级面试题
- 计算机操作培训图片,【图片】计算机学习之旅【汇编吧】_百度贴吧
- 浅谈filter中的chain.doFilter(request, response)的作用
- SMSS打开界面闪退的解决方案
- SpringBoot部署子工程java -jar启动时报错:xxxxxxx.jar中没有主清单属性
- FPGA小白学习之路(2)error:buffers of the same direction cannot be placed in series
- 需求分析-需求调研步骤和方法
- python函数中self的作用_在Python中self的用途是什么?
- html显示用户ipv6地址,IPv6地址查询
- Linux——samba服务器部署