2014 WAP第一个问题----实现一个不可改变的队列:
看似非常easy。。
其实,不同的版本号之间的效率差距可能是巨大的。。
甚至难以想象。
。
使用前STL图书馆queue我们进行了比较。大差异。
。
用上一篇文章的immutable stack 来实现 immutable queue.
事实上就是用两个栈实现队列,详细的思想能够參考 编程之美。。
注意:代码中析构函数那一段代码的目的主要是为了避免析构函数递归调用时递归深度太大。
。
通过将链表后序的节点的智能指针拷贝到局部的vector中。通过vector的析构函数自己主动调用成员的析构函数的规则来实现。。
可能有点绕,大家能够细致琢磨下面。。
附加题:
实现reverse操作(这个问题是说坑了不少学生的。其实很简单,Word可以得到)