假設以順序儲存結構實現乙個雙向棧,即在一維陣列的儲存空間中存在著兩個棧,它們的棧底分別設在陣列的兩個端點。試編寫實現這個雙向棧tws的三個操作:初始化inistack(tws)、入棧push(tws,i,x)和出棧pop(tws,i)的演算法,其中i為0或1,用以分別指示設在陣列兩端的兩個棧.
#include#include#define ok 1#define overflow -1
#define error 1
typedef int status;
typedef struct
bdstack;
status initstack(bdstack &s,int m)
status push(bdstack &s,int i,int x)
status pop(bdstack &s,int i,int x)
else if(i==1)
else return error;
return ok;
}void printfstack(bdstack &s)
while(s.top[1]<=s.base[1])
}int main()
for(i=0; i<(m-2)/2 ; i++)
s.top[0]--;
s.top[1]++;
printfstack(s);
return 0;
}
嚴版資料結構題集3 15
假設以順序儲存結構實現乙個雙向棧,即在一維陣列的儲存空間中存在著兩個棧,它們的棧底分別設在陣列的兩個端點。試編寫實現這個雙向棧tws的三個操作 初始化inistack tws 入棧push tws,i,x 和出棧pop tws,i 的演算法,其中i為0或1,用以分別指示設在陣列兩端的兩個棧.incl...
《資料結構題集》嚴蔚敏 2 11
有效 int insertlistorder list l,int e int insertlistorder list l,int e for i l length i 1 i 雖然是用指標來代替靜態陣列,但還是可以用陣列這個形式滴 l elem i e l length return ok 全部...
《資料結構題集》嚴蔚敏 2 10
有效 int delete list l,int i,int k int delete list l,int i,int k l length k 這一句千萬不能忘記哦 return ok 全部 include include define error 1 define ok 1 define li...