摘要:
下面是图中的深度遍历F# 版本,如果有问题还请各位看官不要吝啬指正:)。Graph类在我之前的随笔中已经定义过了,这边直接使用了。type GraphOperations(graph : Graph) = ///depth-first traversal member this.DFSTraverse(action : unit -> unit, startNodeId : string, endNodeId : string) = let visited : string array = Array.zeroCreate graph.Nodes.Length ... 阅读全文
摘要:
前段时间从涛哥那学了一招——在递归里面使用Continuation 来避免大量的局部变量的使用,从而避免StackOverflow. 下面是一个小的例子:查找整数数组中的第K大的数:在递归中使用Continuation来避免StackOverflow(查找第K大的数):[<AutoOpen>]module Kmaxtype public Sort() = static member KMax(iArr : int array, kmax : int) = let iLen = iArr.Length match kmax with | sma... 阅读全文
摘要:
这是在工作之余弄了些这个,做的也不太好,留个纪念,今后要用可以做个笔记:)namespace FSharp.Graph#if INTERACTIVE#r "System.Xml.dll"#r "System.Xml.Linq"#endifopen Systemopen System.Xml.Linqopen System.Xmltype Graph() = let mutable nodes = [] let mutable edges = [] member this.Nodes with get() = nodes member this.Edges 阅读全文