2011-01-26 24 views
0

的我有一个过程和它的定义stack。现在,在将商品推到stack时,我需要检查相同/相似商品是否已经存在。如果没有 - 推新项目。 这涉及到两个栈操作夫妇堆栈操作(弹出+推送)与一个哈希表的替代

  1. 弹出一个类似的项目类型,比较,如果 其同项目被推
  2. 然后按最新的。

我的问题是 - 所花的代价是否值得呢,还是应该为我的堆栈条目维护一个散列表以使这个决定更容易。 否则,堆栈操作的代价是多少?像LINUX的平面存储器模型

一件事,那将是绝对错误的,以增加需求的基础上预先分配的堆栈大小(比如通过realloc的)?

+0

这是C/C++? – 2011-01-26 18:10:11

回答

0

清楚堆栈选项收费取作很多不必要的时间在其上不需要的处理被浪费。基于哈希方法是更好,因为哈希表是搜索任何东西(在这里为你这将是类似于u的计划添加到内存中的新记录备案)的最快方式。哈希总是最好的方法,即使在操作系统设计人员使用哈希表来提供最佳性能。