c - 我正在尝试解决这个问题,我已经尝试过,但我不知道如何通过代码或逻辑解决这个问题

标签 c arrays data-structures

单个数组 A[1....MAXSIZE] 用于实现两个堆栈。两个堆栈从数组的两端生长。变量top1和top2(top1 < top2)指向每个堆栈中最顶层元素的位置。如果要高效利用空间,判断栈满的条件?

最佳答案

当两个顶部碰撞时,两个堆栈都已满。

[e1|e2|e3|_|_|_|_|f2|f1]
        |          |
       top1        top2

如果top1+1 == top2,这意味着堆栈已满 或者当然如果 top2==0top1==MAXSIZE-1

请注意,两个堆栈共享相同的空间。因此,如果您的数组已满,则两个堆栈都已满,否则两个堆栈中的任何一个都可能再容纳一个元素。 这解释了为什么上述条件适用于两个堆栈。

关于c - 我正在尝试解决这个问题,我已经尝试过,但我不知道如何通过代码或逻辑解决这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58232070/

相关文章:

c - C 数组中的最小值、最大值和位置

C 套接字 : Server gives firefox a downloadable file instead of firefox showing the page

c - (*twod)[3] 与 *(twod)[3] C 指针

javascript - 使用动态属性名称访问嵌套属性

Python数据结构建议

c - timeout = 0 的 recvmmsg() 等同于非阻塞 recvmsg()?

c - (Linux/X11) 具有纯色背景的透明窗口上的透明 opengl 对象显示窗口后面的内容

python - 如何从 Python 中的集合列表创建集合?

html - 为什么方向不能正常工作?

java - 如何通过图中的给定路径覆盖最大数量的节点?