我现在学习的期末考试,我看到以下问题在教授的PPT幻灯片,其中所谈到的堆栈的末尾:什么是双栈?
What is a Double Stack?
我知道堆栈是一个有序同质元素(即列表)的集合,其中所有插入和删除操作都在名为堆栈顶部的列表的一端进行,但双栈是什么?我试图通过谷歌搜索,我没有找到答案的运气。
我现在学习的期末考试,我看到以下问题在教授的PPT幻灯片,其中所谈到的堆栈的末尾:什么是双栈?
What is a Double Stack?
我知道堆栈是一个有序同质元素(即列表)的集合,其中所有插入和删除操作都在名为堆栈顶部的列表的一端进行,但双栈是什么?我试图通过谷歌搜索,我没有找到答案的运气。
找到更多信息这可能是2堆被存储在一个单一阵列和在相反的方向生长。
http://www.ceglug.org/index.php/labs/45-double-stack-implementationwith-structuresand
虽然这是唯一的参考,我发现。
DoubleStack是一个双值的堆栈。
您可以在
http://www.cis.syr.edu/courses/cis351/docs/edu.colorado.collections.DoubleStack.html.gz
双栈表示使用单个阵列实现的两个栈。为了防止内存浪费,两个堆栈在相反的方向上生长。指针tops1和tops2分别指向堆栈1和堆栈2的最顶层元素。最初,tops1被初始化为-1,tops2被初始化为容量。当元素被推入堆栈1时,顶点1会增加。同样,当元素被压入堆栈2时,tops2递减。所以,当tops1 = tops2-1时数组已满。除此之外,将元素推入任何堆栈都会导致溢出情况。