棧共享空間

2021-09-24 01:14:59 字數 513 閱讀 3087

兩棧共享空間的結構的**如下:

typedef struct

sqdoublestack;

對於兩棧共享空間的push方法,我們除了要插入元素值共享引數外,還需要有乙個判斷是棧1還是棧2的棧號引數stacknumber,插入元素的**如下:

/*插入元素e為新的棧頂元素*/

status push(sqdoublestack *s, selemtype e, int stacknumber)

兩棧共享空間的pop**如下:

/* 若棧不空,則刪除s的棧頂元素,用e返回其值,並返回ok;否則返回error */

status pop(sqdoublestack *s, selemtype *e, int stacknumber)

else if(stacknumber ==2)

}

上面的方法具有侷限性,僅適用於具有相同資料型別的兩個棧。

棧 兩棧共享空間

對於乙個棧,我們只能盡量考慮周全,設計出合適大小的陣列處理。但是,對於兩個相同型別的棧,我們卻可以做到最大限度地利用其事先開闢的儲存空間進行操作。我們可以用乙個陣列來儲存兩個棧,只不過需要一點小技巧。陣列有兩個端點,兩個棧有兩個棧底,讓乙個棧的棧底為陣列的始端,即下標為0處。另乙個棧的棧底為陣列的末...

兩棧共享空間

include include include define ok 1 define error 0 define maxsize 20 typedef int selemtype typedef int status typedef struct sqdoublestack 雙頭棧的初始化 sta...

兩棧共享空間

1.共有棧的實現 package edu.tcu.soft 兩棧共享空間 public class mybothstack 入棧操作 public void push int i,e e else 如果i 2,入右棧 if i 2 出棧操作 suppresswarnings unchecked pu...