在阅读不同的数据结构时,我发现编译器使用的符号表被归类为一种数据结构。
有人能解释一下符号表数据结构和哈希表之间的区别吗?
在阅读不同的数据结构时,我发现编译器使用的符号表被归类为一种数据结构。
有人能解释一下符号表数据结构和哈希表之间的区别吗?
TL;DR: 符号表并不是一个数据结构,而是一种抽象数据类型(ADT)。因此,它不能与哈希表相比较,哈希表是一种数据结构。但它们之间非常密切相关。
详细解释: 首先,符号表并不是一个数据结构。在计算机科学中,符号表是一种抽象数据类型(ADT)。ADT 更通俗的说法是字典。
对 ADT 的实现称为 数据结构。有许多数据结构实现了符号表/字典 ADT。其中一种数据结构是哈希表。其他可能实现符号表/字典 ADT 的数据结构如下:
请记住,上述列表并不详尽无遗。这个 ADT 可以有更多的实现。
注意:您可能想阅读此线程,以了解 ADT 和数据结构之间的区别。
符号表本身并不是一种数据结构。大多数编译器都需要一个或多个符号表,但它们的确切形式不限于一种特定的数据结构。如果适合其目的,有些编译器可能选择将其符号表实现为哈希表。
因此,我认为区别在于概念上的差异。 "符号表"按其目的描述了数据结构。 "哈希表"按其实现描述了数据结构。
维基百科页面还可以。