C中的映射算法

时间:2011-11-17 11:23:13

标签: c algorithm data-structures

scala可以进行映射(ADT),所以我们可以这样映射('A',3)=(Char,Int)

在C中怎么样?

我想映射并检查所有关系并比较两个地图

'a'= 1,'b'= 3,'c'= 4是由abbbcccc映射

和'e'= 1,'b'= 3,'g'= 4是由bbbegggg映射

我想找到这些关系('a',1)不在('e'= 1,'b'= 3,'g'= 4)。那么,这张地图 ('b'= 3)在('e'= 1,'b'= 3,'g'= 4)这个地图中。并计算++;

我如何制作这些地图?我可以通过数组制作吗?

1 个答案:

答案 0 :(得分:4)

不是普通的C,没有。

您可以使用一个或两个数组实现一个,但您必须实现散列算法或某种比较和搜索算法。或者,您可以使用某种搜索树来实现它。

如果您不想编写地图数据类型,则必须使用具有该功能的库。 GLib包含一个:http://developer.gnome.org/glib/2.30/glib-Hash-Tables.html