2011-06-14 287 views
1

我现在学习的期末考试,我看到以下问题在教授的PPT幻灯片,其中所谈到的堆栈的末尾:什么是双栈?

What is a Double Stack?

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

回答

1

双栈表示使用单个阵列实现的两个栈。为了防止内存浪费,两个堆栈在相反的方向上生长。指针tops1和tops2分别指向堆栈1和堆栈2的最顶层元素。最初,tops1被初始化为-1,tops2被初始化为容量。当元素被推入堆栈1时,顶点1会增加。同样,当元素被压入堆栈2时,tops2递减。所以,当tops1 = tops2-1时数组已满。除此之外,将元素推入任何堆栈都会导致溢出情况。