c - C中的映射算法

标签 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) 中。那么,这张 map ('b' = 3) 在 ('e' = 1 , 'b' = 3, 'g' = 4) 这张 map 中。并计数++;

我如何制作这些类似的 map ?我可以用数组来做吗?

最佳答案

不是在纯 C 中,不是。

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

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

关于c - C中的映射算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8166280/

相关文章:

c - ADT 的段错误

algorithm - inorder + preorder如何构造唯一的二叉树?

c++ - 如何将 13 位值映射到 4 位代码?

c - Doug Lea 分配器的奇怪 malloc 行为

java - 如何用方程要求解决这个 3x3 矩阵

c++ - 为什么冒泡排序需要嵌套循环?

algorithm - 在基于树的结构中继承属性的最佳方式是什么?

c - IoCreateSymbolicLink 何时返回 STATUS_OBJECT_NAME_COLLISION

c - 类似于 C++ 泛型的 C 函数

algorithm - 绝对值之和的最小值