Symbol表和Hash map数据结构之间的区别

Out*_*ind 4 hashmap symbol-table data-structures

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

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

RBT*_*RBT 6

首先Symbol table没有的数据结构。Symbol table是计算机科学中的抽象数据类型(ADT)。该ADT的另一个通用名称是字典。

ADT的实现称为数据结构。Symbol TableADT 有许多实现(又称为数据结构)。一种这样的实现是哈希图。以下是Symbol Table但不限于以下的各种可能实现:

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

注意:您可能还想阅读线程,以了解ADT和数据结构之间的区别。


Mun*_*jah 6

在此输入图像描述“符号表的主要目的是将值与键相关联。符号表实现的特征通常在于其底层数据结构以及 get() 和 put() 的实现。使用散列的搜索算法由两个独立的第一部分是计算哈希函数,将搜索键转换为数组索引。哈希搜索的第二部分是冲突解决过程”


Dam*_*ver 5

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

所以我想说区别是概念上的。“符号表”通过目的描述了一种数据结构。“哈希图”通过其实现描述数据结构。

维基百科的页面是不是太糟糕