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