兩種棧的實現 順序棧和鍊錶棧

2021-07-25 11:38:13 字數 1015 閱讀 9392

一、定義:棧是限定盡在一端插入或刪除操作的線性表。「後進先出(lifo)」。

二、習慣上稱棧的可訪問元素為站棧頂(top)元素,元素插入棧稱為入棧(push),刪除元素稱為出棧(pop)。

三、棧的adt:

template class stack        //建構函式

virtual~stack();  //析構函式

virtual void clear() = 0;   //清空

virtual void push() = 0;    //入棧函式

virtual e pop() = 0;        //出棧函式

virtual const e& topvlaue() const = 0;  //棧頂元素

virtual int length() const = 0;         //棧的長度

};四、順序棧:

l  順序棧在建立棧的時候必須說明乙個固定長度。

l  當棧中有n個元素時把位置n-1作為棧頂,top位置不存放值。

l  實現如下:

templateclass astack :public stack

~astack()

void clear()

void push(const e& it)

e pop()

const e& topvlaue()const

int length() const

};五、鏈式棧:

l  top是指向鏈式棧第乙個結點(棧頂)的指標。

l  鏈式棧的實現:

templateclass lstack :public stack < e >

~lstack()

void clear()

size= 0;

}void push(const e& it)

void pop()

const e& topvalue() const

int length()const

};

用兩種方法實現棧 順序表和煉表

棧是一種先進後出的資料結構,棧中的資料是先進後出的 first in last out,filo 棧只有乙個出口,允許新增元素 只能在棧頂上增加 移出元素 只能移出棧頂元素 取得棧頂元素等操作。在stl中,棧是以別的容器作為底部結構,再將介面改變,使之符合棧的特性就可以了。棧裡面常用的函式有push...

棧的兩種實現

順序表實現棧 include include 順序表實現棧 define test head printf n s n function define default sz 5 typedef char datatype typedef struct seqstack seqstack 棧的初始化 ...

棧的兩種實現

棧的基本實現 include stdafx.h include include define maxsize 64 using namespace std 基於陣列實現的棧 class stack 預設建構函式 int push int data 元素入棧 int pop 元素出棧 bool ise...