溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

棧的代碼實(shí)現(xiàn)之?dāng)?shù)組方案

發(fā)布時(shí)間:2020-08-02 17:21:18 來源:網(wǎng)絡(luò) 閱讀:637 作者:ningcaichen66 欄目:編程語言

棧是一種具有從宏觀上來看是“先進(jìn)后出”功能特點(diǎn)的數(shù)據(jù)結(jié)構(gòu)。可以由數(shù)組或者鏈表來實(shí)現(xiàn)。

其實(shí)現(xiàn)原理是從“一端”操作,導(dǎo)致先存儲(chǔ)的數(shù)據(jù)最后被取出。有棧頂、棧底等因素組成。在《C語言,好爽》第7版(2017年)第76集:棧的代碼實(shí)現(xiàn)之?dāng)?shù)組方案,中對(duì)棧的內(nèi)存實(shí)現(xiàn)原理進(jìn)行了詳解。這里只從宏觀上來理解,以及相關(guān)代碼如何實(shí)現(xiàn)。

其結(jié)構(gòu)體類型為:

#define N 30

struct _stack

{

int top;

int data[N];

};

typedef struct _stack mystack;

對(duì)棧的操作通常有初始化、判斷??铡M,入棧,操作,清空等操作。這里分別實(shí)現(xiàn):

棧的代碼實(shí)現(xiàn)之?dāng)?shù)組方案

棧的代碼實(shí)現(xiàn)之?dāng)?shù)組方案

棧的代碼實(shí)現(xiàn)之?dāng)?shù)組方案

棧的代碼實(shí)現(xiàn)之?dāng)?shù)組方案

棧的代碼實(shí)現(xiàn)之?dāng)?shù)組方案

棧的代碼實(shí)現(xiàn)之?dāng)?shù)組方案

棧的代碼實(shí)現(xiàn)之?dāng)?shù)組方案

棧的代碼實(shí)現(xiàn)之?dāng)?shù)組方案

調(diào)用代碼:

int main() {

mystack ms;

init(&ms);

int flag = 0;

int value = 0;

value = 0;

flag = push(&ms, value);

if (flag)

{

printf("%d 入棧成功", value);

}

else

{

printf("%d 入棧失敗", value);

}

value = 1;

flag = push(&ms, value);

if (flag)

{

printf("%d 入棧成功", value);

}

else

{

printf("%d 入棧失敗", value);

}

value = 2;

flag = push(&ms, value);

if (flag)

{

printf("%d 入棧成功", value);

}

else

{

printf("%d 入棧失敗", value);

}

show(&ms);

//彈出棧

int output_value = 0;

int output_flag = 0;

output_flag = pop(&ms, &output_value);

if (output_flag)

{

printf("出棧成功,出棧的數(shù)據(jù)為:%d", output_value);

}

else

{

printf("出棧失敗");

}

output_flag = pop(&ms, &output_value);

if (output_flag)

{

printf("出棧成功,出棧的數(shù)據(jù)為:%d", output_value);

}

else

{

printf("出棧失敗");

}

output_flag = pop(&ms, &output_value);

if (output_flag)

{

printf("出棧成功,出棧的數(shù)據(jù)為:%d", output_value);

}

else

{

printf("出棧失敗");

}

show(&ms);

system("pause");

return 0;

}

測(cè)試結(jié)果:

棧的代碼實(shí)現(xiàn)之?dāng)?shù)組方案


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI