首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用单个数组实现三个堆栈

如何使用单个数组实现三个堆栈
EN

Stack Overflow用户
提问于 2010-06-17 16:37:15
回答 15查看 17.3K关注 0票数 16

我在一个面试网站上遇到了这个问题。该问题要求在单个数组中有效地实现三个堆栈,以便在整个数组空间中没有剩余空间之前没有堆栈溢出。

对于在一个数组中实现两个堆栈,很明显:第一个堆栈从左到右增长,第二个堆栈从右到左增长;当stackTopIndex交叉时,它发出溢出信号。

提前感谢你富有洞察力的回答。

EN

Stack Overflow用户

发布于 2010-06-17 17:12:09

假设所有的数组位置都应该用来存储值-我猜这取决于你对效率的定义。

如果使用双堆栈解决方案,将第三个堆栈放在中间的某个位置,并跟踪其底部和顶部,那么大多数操作将继续有效,只要发生冲突,代价就是代价高昂的移动操作(将第三个堆栈移动到剩余可用空间的位置,移动到空闲空间的中点)。

它肯定会很快地编码和理解。我们的效率目标是什么?

票数 1
EN
查看全部 15 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3060104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档