2011-07-15 77 views
2

免責聲明:作者是Erlang的新手。Erlang內部有向圖是什麼?

我想在Erlang中實現某種最短路徑算法。

有在二郎山的標準實現圖形數據結構的:http://www.erlang.org/doc/man/digraph.html

不過,我還沒有找到它使用的實際數據結構的任何信息。

主要是我想知道:

  • 是什麼讓所有的「鄰居」的頂點行動的最壞情況下的表現?
  • 從圖中獲取頂點的最壞情況的性能是什麼?

回答

7

一個有向圖使用3個表(頂點,邊和鄰居頂點)。

所以這兩個操作都是O(1)。

看看OTP代碼,它很乾淨,在大多數情況下都是慣用的Erlang。 stdlib的gen.erl + gen_server.erl,proc_lib.erl和sys.erl必須閱讀:)

+0

非常感謝!附:我認爲學習Erlang的最好方法是閱讀「Erlang/OTP in action」等書籍,但似乎我應該嘗試閱讀一些源代碼。新手是否應該從學習過程的一開始就閱讀源代碼?你怎麼看? – skanatek

+0

在對功能順序erlang感到滿意後 - 絕對是的。所以gen + gen_server將會(相對)容易閱讀。 – probsolver