当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

Erlang中queue的实现方式

发表于: 2011-11-21   作者:bookjovi   来源:转载   浏览次数:
摘要:   Erlang中queue的实现很有意思,queue中数据的组织方式与我们常见的queue不同,如Erlang queue的reverse的时间复杂度为O(1),严格的说这种queue实现方式对所有的FP都适用。     %% Efficient implementation of double ended fifo queues %% %% Queue

 

Erlang中queue的实现很有意思,queue中数据的组织方式与我们常见的queue不同,如Erlang queue的reverse的时间复杂度为O(1),严格的说这种queue实现方式对所有的FP都适用。

 

 

%% Efficient implementation of double ended fifo queues
%%
%% Queue representation
%%
%% {RearList,FrontList}
%%
%% The first element in the queue is at the head of the FrontList
%% The last element in the queue is at the head of the RearList,
%% that is; the RearList is reversed.
%%

 

 像一般的queue操作代码就不贴了,关键看一下reverse函数:

%% Return reversed queue
%%
%% O(1)
-spec reverse(Q1 :: queue()) -> Q2 :: queue().
reverse({R,F}) when is_list(R), is_list(F) ->
    {F,R};
reverse(Q) ->
    erlang:error(badarg, [Q]).
 

Have fun!

 

 

Erlang中queue的实现方式

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
]} 7> queue:in(f,v(6)). {[f,e,d,c,b],[a]} 8> queue:in(g,v(7)). {[g,f,e,d,c,b],[a]} 9>
Erlang的原子(atom)在匹配中有着重要作用,它兼顾了可读性和运行效率。 通过atom,可以实现很多灵活
1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 template <
4 Queue
Queue 可装载元素的容器,提供了添加元素,移出队列头元素,检查队列头部是否有元素等方法。 抛出异
转载地址:http://www.linuxidc.com/Linux/2012-08/67980.htm 学习中,用到的,记录下。 无论是移动
总的来说,在 MySQL 中的ORDER BY有两种排序实现方式,一种是利用有序索引获取有序数据,另一种则是
无论是移动、联通还是电信,都至少提供了两种类型的的APN:WAP方式和NET方式。其中NET方式跟WIFI方
总的来说,在 MySQL 中的ORDER BY有两种排序实现方式,一种是利用有序索引获取有序数据,另一种则是
ZooKeeper实现分布式队列Queue 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop
myhadoop ZooKeeper实现分布式队列Queue 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号