使用单项循环链表实现字典操作(算法导论第十章10.2-5题)

template<typename T>
void insert(SingleCycleL<T> & l,T key)
{HalfNode<T> * t = new HalfNode<T>(key);t->next = l.Nil->next;l.Nil->next = t;
}
template<typename T>
bool remove(SingleCycleL<T> & l,T key)
{HalfNode<T> *pre = l.Nil;HalfNode<T> *current = l.Nil->next;while (current->key!=key){pre = current;current = current->next;}if(current != l.Nil){pre->next = current->next;delete current;return true;}return false;
}
template<typename T>
HalfNode<T> search(SingleCycleL<T> & l,T key)
{l.Nil->key = key;HalfNode<T> *current = l.Nil->next;while (current->key!=key){current = current->next;}return current;
}

链表结构地址
测试代码

 int size = 5;SingleCycleL<int> singleCycleL;for (int i = 0; i < size; ++i) {insert(singleCycleL,i);}for (int i = 0; i < size/2; ++i) {remove(singleCycleL,i);}HalfNode<int>* current = singleCycleL.Nil->next;while (current != singleCycleL.Nil){cout<<current->key<<endl;current = current->next;}

使用单项循环链表实现字典操作(算法导论第十章10.2-5题)相关推荐

  1. 给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构(算法导论第十章10.4-3)

    给定一个n节点的二叉树,写出一个O(n)时间非递归过程,将该树每个节点关键字输出,可以使用一个栈作为辅助数据结构 (算法导论第十章10.4-3) template<typename T> ...

  2. 给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出(算法导论第十章10.4-2)

    给定一个n节点的二叉树,写出一个O(n)时间递归过程,将该树每个节点关键字输出 (算法导论第十章10.4-2) #include <iostream> template<typena ...

  3. 对一组同构对象用单数组表示法实现(算法导论第十章10.3-2)

    对一组同构对象用单数组表示法实现 (算法导论第十章10.3-2) 考虑到数据安全问题,多用了一个数组来处理安全问题. #ifndef C11LEARN_SINGULARGROUPSREPRESENTI ...

  4. 用一个单链表L实现一个队列(算法导论第十章10.2-3)

    用一个单链表L实现一个队列(算法导论第十章10.2-3) template<typename T> class HalfNode {public:T key;HalfNode* next; ...

  5. 用一个单链表L实现一个栈(算法导论第十章10.2-2题)

    用一个单链表L实现一个栈(算法导论第十章10.2-2题) template<typename T> class HalfNode {public:T key;HalfNode* next; ...

  6. 找出第i个小元素(算法导论第三版9.2-4题)

    找出第i个小元素(算法导论第三版9.2-4题) 期望时间复杂度:Θ(n) 最坏情况的时间复杂度Θ(n^2) int randomized_select_based_loop(int *array,in ...

  7. 找出第二小元素(算法导论第三版9.1-1题)

    找出第二小元素(算法导论第三版9.1-1题) 时间复杂度Θ(n) 比较次数n+⌈lgn⌉−2次 思路:将元素每次分成2部分,第一部分和第二部分元素成对比较.最终获得最小的元素,记录那些和最小元素比较后 ...

  8. 算法导论-上课笔记10:最小生成树

    文章目录 0 前言 1 最小生成树 2 Kruskal算法 3 Prim算法 0 前言 在电路设计中,常常需要将多个组件的针脚连接在一起.要连接n个针脚,可以使用n-1根连线,每根连线连接两个针脚,则 ...

  9. 算法导论答案 第10章:基本数据结构

    10.1 栈和队列 10.1-2 从数组的两端向数组的中间插入元素.数组的两端相当于2个栈的栈顶. 10.1-4 ENQUEUE(Q,x) {if head[Q]=(tail[Q]+1)%length ...

最新文章

  1. JAVA语言基础-面向对象(集合框架02List、泛型)
  2. 什么是ERP (转载自百度知道)
  3. 便利删除_全家便利官方道歉,我们深扒了来龙去脉
  4. 进程间通信 IPC 的本地过程调用 LPC(Local Procedure Call)和远程过程调用 RPC(Remote Procedure Call)
  5. 计算机二级办公室软件应用选择题,计算机二级,办公软件高级应用技术有没有选择题和判断题的...
  6. linux mysql date 格式_关于MySQL中的三种日期类型
  7. 《dp补卡——343. 整数拆分、96. 不同的二叉搜索树》
  8. mysql 5.5 主从同步问题_MySQL 5.5 主从复制异步、半同步以及注意事项详解
  9. 所有致力于团队沟通协作的看图软件
  10. 【Android笔记】Unable to execute dex: Multiple dex files define 解决方法
  11. Linux下DIR,dirent,stat等结构体详解
  12. 什么是E-MapReduce
  13. python3入门代码-Python3入门(十三)——连接数据库
  14. 克服密集恐惧症,目标检测代你实现钢筋精准计数
  15. Windows下jmeter安装
  16. 【Python爬虫实战】微信爬虫
  17. 独家首发强大的个性生成工具箱微信小程序源码,超多功能的合成
  18. 魔界/指环王三部曲(加长版)在线观看免费bt下载
  19. python pyd_python项目(.pyd或者.so)代码加密
  20. php办公电脑配置,性能不俗的办公电脑推荐配置 八代奔腾G5400搭配H310电脑配置推荐...

热门文章

  1. C语言试题五十一之已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。
  2. IOS学习笔记二十一(NSDictionary、NSMutableDictionary)
  3. LeetCode之Single Number
  4. C++类和new、delete操作符和堆和栈内存的分配
  5. 最高调恋爱方式,简直“公开处刑”......
  6. 公厕的门下面为什么都要空一截?难道是为了和别人分享我中午吃的两碗螺狮粉?
  7. 20个天才般的走心设计,真是太牛了!
  8. Java类集-SortedSet接口
  9. linux运行.pak文件,使用game-to-flatpak脚本将商业Linux游戏安装程序转换为Flatpak应用程序...
  10. matlab排版形式是什么样子,工作型PPT,图文排版的4种常见样式