棧的簡單實現

2021-06-12 04:55:41 字數 1227 閱讀 3866

設棧採用順序儲存結構(用動態陣列),請編寫棧的各種基本操作的實現函式   

⑴ 棧的動態陣列順序儲存結構可定義如下: 

struct  stack ;

⑵ 棧的基本操作可包括:

① void initstack (stack &s);    //

構造乙個空棧 s

② int emptystack (stack s);   //若棧s

為空棧返回

1,否則返回0

③ void push(stack &s, elemtype item);   //

元素 item進棧

④ elemtype pop(stack &s);    //

棧s的棧頂元素出棧並返回

⑤ elemtype peek(stack s);   //

取棧s的當前棧頂元素並返回

⑥ void clearstack (stack &s);   //

清除棧s

,使成為空棧

**如下:

#include

#include

#include

#define maxsize 10

#define increment 10

typedef int elemtype;

typedef struct  stack stack;

void initstack (stack &s)   //構造乙個空棧 s

int emptystack (stack &s)   //若棧s為空棧返回1,否則返回0

void push(stack &s, elemtype item)   //元素 item進棧

else                                       

*s.top=item;

s.top++;}

elemtype pop(stack &s)    //棧s的棧頂元素出棧並返回

elemtype peek(stack &s)  //取棧s的當前棧頂元素並返回

void clearstack (stack &s) //清除棧s,使成為空棧

void printfstack(stack &s)//輸出棧內元素

else

while(i }

執行結果:

棧的簡單實現

棧的描述 線性結構,有序列表,先進後出 陣列實現棧 思路 記錄一下棧頂元素的索引,加入新元素時索引 索引位置對應的值設為新元素,直到棧滿,取出元素後,索引 直到小於0,棧空 鍊錶實現棧 public class arraystack 棧滿 return public boolean isfull 是...

棧的簡單實現(順序棧 鏈棧)

include define maxsize 100 define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 using namespace std typedef i...

棧的簡單實現(二)

上文棧的簡單實現 一 實現了不能擴充套件棧容量的順序棧結構,這次給棧加上擴容功能,這樣就不用擔心出現滿棧的情況了。不過由於本人技術水平不夠,也還在學習當中,因此只能固定擴大大小,而不是根據實際情況進行最合適的擴大。跟上文 差不多,只是新增了乙個擴容的方法,以及改變了push方法。新增 如下 擴大棧的...