設棧採用順序儲存結構(用動態陣列),請編寫棧的各種基本操作的實現函式
⑴ 棧的動態陣列順序儲存結構可定義如下:
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方法。新增 如下 擴大棧的...