数据结构《21》----2014 WAP 第一个问题----Immutable queue
2015-06-25 16:12
441 查看
2014 WAP第一个问题----实现一个不可改变的队列:
看似非常easy。。
其实,不同的版本号之间的效率差距可能是巨大的。。
甚至难以想象。
。
使用前STL图书馆queue我们进行了比较。大差异。
。
用上一篇文章的immutable stack 来实现 immutable queue.
事实上就是用两个栈实现队列,详细的思想能够參考 编程之美。。
注意:代码中析构函数那一段代码的目的主要是为了避免析构函数递归调用时递归深度太大。
。
通过将链表后序的节点的智能指针拷贝到局部的vector中。通过vector的析构函数自己主动调用成员的析构函数的规则来实现。。
可能有点绕,大家能够细致琢磨下面。。
附加题:
实现reverse操作(这个问题是说坑了不少学生的。其实很简单,Word可以得到)
看似非常easy。。
其实,不同的版本号之间的效率差距可能是巨大的。。
甚至难以想象。
。
使用前STL图书馆queue我们进行了比较。大差异。
。
用上一篇文章的immutable stack 来实现 immutable queue.
事实上就是用两个栈实现队列,详细的思想能够參考 编程之美。。
注意:代码中析构函数那一段代码的目的主要是为了避免析构函数递归调用时递归深度太大。
。
通过将链表后序的节点的智能指针拷贝到局部的vector中。通过vector的析构函数自己主动调用成员的析构函数的规则来实现。。
可能有点绕,大家能够细致琢磨下面。。
附加题:
实现reverse操作(这个问题是说坑了不少学生的。其实很简单,Word可以得到)
相关文章推荐
- c#数据结构之顺序表
- [数据结构]c++注释转化为c语言注释
- xHCI驱动学习(1) 核心数据结构
- Python——基本数据结构
- 按层次遍历二元树
- Joomla添加分类和文章时的目录数据结构
- 数据结构和算法经典100题-第18题
- Redis 链表的数据结构
- 数据结构——Stack和Queue的互相实现
- Python数据结构:序列——字符串
- 《数据结构与算法分析c++描述》读书笔记二——二叉树
- POJ 1655 Balancing Act (树的重心)
- 用数组实现js中的堆栈 或者队列数据结构
- 【数据结构】队列
- 数据结构基础(6)--递归和函数调用--汉诺塔问题C语言实现
- 【数据结构】栈
- 分析数据结构IO_CACHE及相关处理函数
- 【数据结构】线性表之链式存储结构
- 【数据结构】线性表之顺序存储结构
- C# 数据结构 栈 Stack