2011-06-14 285 views
1

我現在學習的期末考試,我看到以下問題在教授的PPT幻燈片,其中所談到的堆棧的末尾:什麼是雙棧?

What is a Double Stack?

我知道堆棧是一個有序同質元素(即列表)的集合,其中所有插入和刪除操作都在名爲堆棧頂部的列表的一端進行,但雙棧是什麼?我試圖通過谷歌搜索,我沒有找到答案的運氣。

回答

1

雙棧表示使用單個陣列實現的兩個棧。爲了防止內存浪費,兩個堆棧在相反的方向上生長。指針tops1和tops2分別指向堆棧1和堆棧2的最頂層元素。最初,tops1被初始化爲-1,tops2被初始化爲容量。當元素被推入堆棧1時,頂點1會增加。同樣,當元素被壓入堆棧2時,tops2遞減。所以,當tops1 = tops2-1時數組已滿。除此之外,將元素推入任何堆棧都會導致溢出情況。