符号表和哈希映射数据结构之间的区别

时间:2017-04-23 04:42:19

标签: data-structures hashmap symbol-table

在阅读不同的数据结构时,发现编译器使用的符号表被归类为数据结构。

有人可以解释符号表数据结构和哈希映射之间的区别吗?

3 个答案:

答案 0 :(得分:4)

符号表本身不是 a 数据结构。大多数编译器都需要一个或多个符号表,但它们的精确形式不限于一个特定的数据结构。 某些编译器可能会选择将其符号表实现为哈希映射,如果它适用于它们的目的。

所以我说差异是概念。 “符号表”按其目的描述数据结构。 “哈希映射”通过其实现来描述数据结构。

Wikipedia page并不太糟糕

答案 1 :(得分:4)

首先,Symbol table 不是 数据结构。 Symbol table是计算机科学中的抽象数据类型(ADT)。这个ADT的另一个常见名称是字典。

ADT的实现称为数据结构。 Symbol Table ADT有许多实现(也就是数据结构)。一种这样的实现是哈希映射。 Symbol Table的各种可能实现,但不限于以下内容:

  • 无序数组实现
  • 有序(已排序)数组实现
  • 无序链表实施
  • 有序链表实施
  • 基于二进制搜索树的实现
  • 基于平衡二叉搜索树的实现
  • 三元搜索实施
  • 基于哈希的实现 - 例如哈希地图

注意:您可能还想阅读this主题以了解ADT与数据结构之间的区别。

答案 2 :(得分:2)

enter image description here”符号表的主要目的是将值与键关联。符号表的实现通常以其底层数据结构以及get()和put()的实现为特征。 使用散列的搜索算法由两个独立的部分组成。第一部分是计算将搜索关键字转换为数组索引的哈希函数。 哈希搜索的第二部分是解决冲突的过程”