堆栈操作(一个pop + a push)与一个Hash Table替代方案相结合

时间:2011-01-26 18:03:33

标签: linux hash stack hashtable

我有一个流程,它定义为stack。现在,在将项目推送到stack时,我需要检查是否已存在相同/相似的项目。如果不是 - 推送新项目。 这涉及两个堆栈操作

  1. 弹出类似的类型项,比较是否 它与推送项目相同
  2. 然后推最新的。
  3. 我的问题是 - 是值得的成本还是我应该为我的堆栈条目维护哈希表以使这个决定更容易。 否则,堆栈操作的成本是多少??

    像LINUX这样的平面内存模型还有一件事,根据需要增加预分配的堆栈大小是绝对错误的(比如realloc)?

1 个答案:

答案 0 :(得分:0)

很明显,堆栈选项是收费的,因为在处理上浪费了大量不必要的时间,这是不需要的。基于散列的方法更好,因为散列表是搜索任何内容的最快方法(这里为您提供的是与您计划添加到内存中的新记录类似的记录)。哈希始终是最好的方法,即使在操作系统设计中人们使用哈希表来提供最佳性能。