1、定義棧的順序訪問結構、定義棧的基本操作(初始化棧、判棧為空、出棧、入棧等)
#ifndef seqstack_h
#define seqstack_h
#include
#include
using namespace std;
const int stackincreament = 30; //棧溢位時擴充套件空間的增量
template
class seqstack//析構函式
void push(const t& x);
//如果
isfull()
,則溢位處理;否則把
x插入到棧的棧頂。
bool pop(t& x);
//如果
isempty()
,則不執行退棧,返回
false
;否則退掉位於棧頂的元素,返回
true
,
//退出的元素值通過引用型引數
x返回。
bool gettop(t& x) const;
//如果
isempty()
,則返回
false
;否則返回
true,
並通過引用型引數
x棧頂元素的值。
bool isempty()const
//如果棧中元素個數等於
0,則返回
true
,否則返回
false
。
bool isfull()const
//如果棧中元素個數等於
maxsize
,則返回
true
,否則返回
false
。
int getsize()const //函式返回棧中元素個數。
void makeempty() //清空棧的內容
friend ostream& operator << (ostream& os, seqstack& s)//輸出棧中元素的過載操作
<<
private:
t *elements; //存放棧中元素的棧陣列
int top; //棧頂指標
int maxsize; //棧最大可容納元素個數
void overflowprocess(); //棧的溢位處理
};
template
seqstack::seqstack(int sz):top (-1), maxsize (sz) ;
template
void seqstack::overflowprocess()
for (int i = 0; i <= top; i++) newarray[i] = elements[i];
maxsize = maxsize + stackincreament;
delete elements;
elements = newarray;
};
template
void seqstack::push(const t& x) ;
template
bool seqstack::pop(t& x) ;
template
bool seqstack::gettop(t& x) const ;
#endif;
棧 的基本操作。
include include typedef struct node node,pnode typedef struct stack stack,pstack void initialize pstack mystack 棧的初始化。int push stack pstack mystack,in...
棧的基本操作
描述 棧是一種重要的資料結構,它具有push k和pop操作。push k是將數字k加入到棧中,pop則是從棧中取乙個數出來。棧是後進先出的 把棧也看成橫向的乙個通道,則push k是將k放到棧的最右邊,而pop也是從棧的最右邊取出乙個數。假設棧當前從左至右含有1和2兩個數,則執行push 5和po...
棧的基本操作
下面先實現站的基本功能,最後通過乙個test來測試下方法是否實現 建個.c檔案 typedef struct seqstack 初始化 seqstack seqstackinit return null 判斷棧是否為空 int seqstackisempty seqstack s void seqs...