我可以使用malloc添加符号表条目吗?如何遍历表格以检查是否已存在某些内容?
答案 0 :(得分:5)
“符号表”没有描述特定类型的数据结构。它仅描述了主要的操作模式:添加符号并按名称检索符号。这里的符号基本上是属性名称。对于编译器类,一个这样的属性可以是IsAFunction
。
C内置的数据结构非常少。在这种情况下,你必须自己创建一个。在C ++中,它只是std::map<std::string, Attributes>
的问题。现在假设您在编译器类中,您应该已经知道如何在C中实现数据结构(包括使用malloc()
)。如果没有,那么编译器类真的不适合你。
答案 1 :(得分:2)
通常,符号表是通过hash tables实现的。散列表具有O(1)存储和检索的优点,但它们不会按顺序存储数据。
假设你在C中工作,你可以使用malloc()
,但它需要更多的工作。提供的链接应该启发你。
答案 2 :(得分:0)
我以前用双链链接列表完成了。但是现在我肯定会用哈希表来做这件事。 它只是一个数据结构。