什么是双栈?

时间:2011-06-14 07:12:27

标签: data-structures

我正在学习期末考试,我在教授的ppt幻灯片结尾处看到了以下问题,这些幻灯片正在讨论堆栈:

What is a Double Stack?

我知道堆栈是齐次元素(即列表)的有序集合,其中所有插入和删除都在列表的一端进行,称为堆栈顶部但是什么是双栈?我尝试通过谷歌搜索,我没有找到答案的运气。

3 个答案:

答案 0 :(得分:3)

它可能是2个堆栈,它们存储在一个阵列中并以相反的方向生长。

http://www.ceglug.org/index.php/labs/45-double-stack-implementationwith-structuresand

虽然这是我发现的唯一参考。

答案 1 :(得分:1)

DoubleStack是一堆双值。

您可以在

找到更多信息

http://www.cis.syr.edu/courses/cis351/docs/edu.colorado.collections.DoubleStack.html.gz

答案 2 :(得分:1)

Double stack意味着使用单个数组实现的两个堆栈。为了防止内存浪费,两个堆栈以相反的方向生长。指针tops1和tops2分别指向堆栈1和堆栈2的最顶层元素。最初,tops1初始化为-1,tops2初始化为容量。当元素被推入堆栈1时,tops1递增。类似地,当元素被推入堆栈2时,tops2递减。因此,当tops1 = tops2-1时,数组已满。除此之外,将元素推入任何堆栈将导致溢出情况。