如果你的鏈表是用數(shù)組的話(huà),那么只要簡(jiǎn)單得把指向棧頂?shù)闹羔?一個(gè)整數(shù)) = -1(因?yàn)閿?shù)組的下表是從0開(kāi)始) 就OK,表示沒(méi)有元素,
婁底網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)從2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專(zhuān)注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
如果你的鏈表是用動(dòng)態(tài)結(jié)構(gòu)的話(huà),那么你要把這個(gè)棧的所有元素釋放了,最后s.stack = NULL;
你這個(gè)棧是一個(gè)順序棧,base是其所占內(nèi)存的首地址,當(dāng)然free(s-base)會(huì)把整個(gè)棧所占內(nèi)存都釋放,棧不僅僅是空了(象杯子中沒(méi)有了水),而且變沒(méi)了(連杯子都只剩下個(gè)底座了)。可以這樣做,但是一定注意:對(duì)應(yīng)的結(jié)構(gòu)體中stacksize要置為0。
#define?STACK_SIZE?100?//定義棧容量為100
int?contents[STACK_SIZE];?//定義數(shù)組contents用作棧
int?top?=?0;?//定義并初始化棧頂指針為0
//函數(shù)作用:清空棧
void?make_empty(void)
{
top?=?0;?//直接將棧頂指針置0
}
//函數(shù)作用:判斷棧是否為空
bool?is_empty(void)
{
return?top?==?0;?//返回top是否等于0
}
//函數(shù)作用:判斷棧是否已滿(mǎn)
bool?is_full(void)
{
return?top?==?STACK_SIZE;?//返回top是否等于STACK_SIZE
}
//函數(shù)作用:向棧中壓入一個(gè)元素i
void?push(int?i)
{
if(is_full())?//如果棧已滿(mǎn)
stack_overflow();?//執(zhí)行棧上溢操作
else?//否則可以入棧
contents[top++]?=?i;?//向棧中壓入i,然后將棧頂指針+1
}
//函數(shù)作用:彈出棧頂元素并返回
int?pop(void)
{
if(is_empty())?//如果棧為空
stack_underflow();?//執(zhí)行棧下溢操作
else?//否則可以出棧
return?contents[--top];?//返回棧頂元素,然后將棧頂指針-1
}