1. 程式人生 > >數據結構(七)兩棧共享空間

數據結構(七)兩棧共享空間

編程 行操作 開始 結構 n-1 容量 兩個棧 java語言 語言

  一、棧的順序存儲的一個很大的缺陷就是必須事先確定數組存儲空間大小,萬一不夠用了,就要用編程手段來擴展數組的容量,非常麻煩。

  二、對於一個棧,也只能盡量考慮周全,設計出合適大小的數組來處理;但是對於兩個相同類型的棧,可以做到最大限度地利用其事先開辟的存儲空間來進行操作。

  三、如果有兩個相同類型的棧,為它們各自開辟了數組空間,極有可能是第一個棧已經滿了,再進棧就溢出了,而另外一個棧還有很多存儲空間。所以兩棧共享空間的思想是:讓一個棧的棧底為數組的開始端,即下標為0處,另一個棧的棧底為數組的末端,即下標為數組長度的n-1出,這樣,兩個棧如果增加元素,就是兩端點向中間延伸。當兩個棧見面之時,也就是兩個指針相差1時,即top1 + 1 == top2時為棧滿。

  四、兩棧共享空間的C語言代碼實現:

  五、兩棧共享空間的Java語言代碼實現:

數據結構(七)兩棧共享空間