溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

棧的代碼實現之數組方案

發布時間:2020-08-02 17:21:18 來源:網絡 閱讀:669 作者:ningcaichen66 欄目:編程語言

棧是一種具有從宏觀上來看是“先進后出”功能特點的數據結構??梢杂蓴到M或者鏈表來實現。

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

其結構體類型為:

#define N 30

struct _stack

{

int top;

int data[N];

};

typedef struct _stack mystack;

對棧的操作通常有初始化、判斷???、棧滿,入棧,操作,清空等操作。這里分別實現:

棧的代碼實現之數組方案

棧的代碼實現之數組方案

棧的代碼實現之數組方案

棧的代碼實現之數組方案

棧的代碼實現之數組方案

棧的代碼實現之數組方案

棧的代碼實現之數組方案

棧的代碼實現之數組方案

調用代碼:

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("出棧成功,出棧的數據為:%d", output_value);

}

else

{

printf("出棧失敗");

}

output_flag = pop(&ms, &output_value);

if (output_flag)

{

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

}

else

{

printf("出棧失敗");

}

output_flag = pop(&ms, &output_value);

if (output_flag)

{

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

}

else

{

printf("出棧失敗");

}

show(&ms);

system("pause");

return 0;

}

測試結果:

棧的代碼實現之數組方案


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女