【发布时间】:2017-09-19 22:00:59
【问题描述】:
在阅读不同的数据结构时,发现编译器使用的符号表被归类为数据结构。
有人能解释一下符号表数据结构和哈希映射有什么区别吗?
【问题讨论】:
标签: data-structures hashmap symbol-table
在阅读不同的数据结构时,发现编译器使用的符号表被归类为数据结构。
有人能解释一下符号表数据结构和哈希映射有什么区别吗?
【问题讨论】:
标签: data-structures hashmap symbol-table
首先Symbol table 是不是数据结构。 Symbol table 是计算机科学中的一种抽象数据类型 (ADT)。此 ADT 的另一个常用名称是字典。
ADT 的实现称为数据结构。 Symbol Table ADT 有很多实现(又名数据结构)。一种这样的实现是哈希映射。 Symbol Table 的各种可能实现但不限于如下:
注意:您可能还想阅读 this 线程以了解 ADT 和数据结构之间的区别。
【讨论】:
符号表本身并不是 a 数据结构。大多数编译器都需要一个或多个符号表,但它们的确切形式并不局限于一种特定的数据结构。 一些编译器可能会选择将他们的符号表实现为哈希映射,如果这适合他们的目的。
所以我想说区别是概念上的。 “符号表”通过其用途描述数据结构。 “Hash Map”通过其实现来描述一个数据结构。
Wikipedia page 还不错
【讨论】: