2009-11-16 48 views
-3

我可以使用malloc添加符号表条目吗?我如何遍历表格来检查是否已经存在?如何创建符号表?

+0

请稍等。你在C工作吗?你在建立一个编译器吗?这是功课吗?你的语言有多大?你使用任何库吗? –

+0

这是编译器类的作业。我使用C.语言不是很大。没有使用库。 – neuromancer

回答

2

通常,符号表通过0​​实现。哈希表具有O(1)存储和检索的优点,但它们不会按顺序存储数据。

假设你在C工作,你可以使用malloc(),但它需要更多的工作。提供的链接应该启发你。

5

“符号表”没有描述特定类型的数据结构。它仅仅描述了主要的操作模式:添加符号和按名称检索符号。这里的符号基本上是属性名称。对于编译器类,一个这样的属性可能是IsAFunction

C有很少的内置数据结构。在这种情况下你必须自己创建一个。在C++中,它只是一个std::map<std::string, Attributes>的问题。现在假设你在编译器类中,你应该已经知道如何在C中实现数据结构(包括使用malloc())。如果没有,那么编译器类真的不适合你。

0

我以前用双链接链表完成了。但是现在我会用一个哈希表来确定地完成它。 这只是一个数据结构。