一、數據結構中,雙棧共享的優缺點
優點
兩棧的大小不是固定不變的,在實際運算過程中,一個棧有可能進棧元素多而體積大些,另一個則可能小些。
兩個棧共用一個棧空間,相互調劑,靈活性強。
缺點
運算較為復雜。
長度為定值,中途不易擴充。
注:n(n>2)個棧的情況更有所不同,采用多個棧共享棧空間的順序存儲表示方式,處理十分復雜,在插入時元素的移動量很大,因而時間代價較高。特別是當整個存儲空間即將充滿時,這個問題更加嚴重。
解決上述問題的辦法就是采用鏈接方式作為棧的存儲表示方式。
雙棧的適用情況
當棧滿時要發生溢出,為了避免這種情況,需要為棧設立一個足夠大的空間。但如果空間設置得過大,而棧中實際只有幾個元素,也是一種空間浪費。此外,程序中往往同時存在幾個棧,因為各個棧所需的空間在運行中是動態變化著的。如果給幾個棧分配同樣大小的空間,可能實際運行時,有的棧膨脹得快,很快就產生了溢出,而其他的棧可能此時還有許多空閑空間。這時就可以利用雙棧,兩個棧共用一個棧空間,相互調劑,靈活性強。
延伸閱讀:
二、數據元素的機內表示
數據元素的機內表示(映像方法): 用二進制位(bit)的位串表示數據元素。通常稱這種位串為節點(node)。當數據元素有若干個數據項組成時,位串中與個數據項對應的子位串稱為數據域(data field)。因此,節點是數據元素的機內表示(或機內映像)。