来源:我的博客站 OceanicKang |《C++ 数据结构(三)列表(2)无序列表》
秩到位置
是否可以模仿向量的循秩访问方式?
可以,比如,通过重载下标操作符
template <typename T> // assert: 0 <= r < size
T List<T>::operator[](Rank r) const {
// O(r),效率低下,可偶尔为之,却不宜常用
Posi(T) p = first(); // 从首节点出发
while (0 < r--) p = p -> succ; // 顺数第 r 个节点
return p -> data; // 目标节点
} // 任一节点的秩,亦即其前驱的总数
查找
在节点 p(可能是 trailer)的 n 个(真)前驱中,找到等于 e 的最后者
template <typename T> // 从外部调用时,0 <= n <= rank(p) < _size
Posi(T) List<T>::find(T const &e, int n, Posi(T) p) const {

本文详细探讨了C++中无序列表的数据结构,包括如何通过重载下标操作符实现秩到位置的转换,查找指定元素的算法,插入、删除操作的实现,以及列表的复制和析构过程。同时,提到了列表的唯一化处理。
最低0.47元/天 解锁文章
列表(2)无序列表&spm=1001.2101.3001.5002&articleId=84887897&d=1&t=3&u=75266244cd0d47b680935f37acbd5c63)
2348

被折叠的 条评论
为什么被折叠?



