棧的基本操作

2022-09-10 22:24:38 字數 2712 閱讀 1152

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...