将元素插入到OCaml中的列表中的特定位置的标准方式是什么?只允许递归。不允许分配操作。OCaml在列表中插入元素
我的目标是通过使用in_degree = out_degree = 1删除顶点来压缩ocaml中的图。出于这个原因,我需要删除相邻的边缘以形成单个边缘。现在边缘列表[(6,7);(1,2);(2,3);(5,4)]。所以我需要从列表中删除这些边并添加一个边。 所以上面的列表现在看起来像[(6,7);(1,3);(5,4)]。这里我们看到(1,2);(2,3)被删除,(1,3)被插入到第二个位置。我为此设计了一个算法。但为此,我需要知道如何从位置2,3删除边(1,2);(2,3),并且在位置2中插入(1,3)而没有任何显式变量并以递归方式。
我会建议,如果可能的话,抛出清单并使用Set数据结构。 – nlucaroni 2012-02-29 17:02:12
“只允许递归”,“没有任何显式变量” - 听起来像某种功课......是吗? – lambdapower 2012-03-01 17:51:04
是的,这是作业的一部分,但我没有要求解决作业问题。我设计了一个算法,并使用我需要在列表中执行此操作的算法。那是我问的。我的作业是在ocaml中压缩图表。在这里,我不是在问这个问题。我在问清单。 – 2012-03-02 10:32:11