push,pop,top,size,empty這些操作對於棧來說常量時間的,但是要想實現min,max的常量時間操作需要增加兩個棧,乙個用於維護最小值,乙個用於維護最大值。例如,對於min,每次入棧時將小於等於min棧頂的數值也壓到min棧,出棧是如果值等於min的棧頂,將min的棧頂出棧。
以下是實現的**,並不複雜。
#include #include using namespace std;
templateclass xstack
else
stk.push(v);
} void pop()
type top()
size_t size()
bool empty()
type min()
type max()
private:
stackstk;
stackmin_stk;
stackmax_stk;
};int main()
棧(一) 棧的基本操作
1.棧的簡介 棧是一種後入先出的資料結構,一般包含兩種最基本的操作 入棧 push 和出棧 pop 入棧操作 top指標上移,元素入棧。出棧操作 top指標下移。棧空的條件 top bottom 棧滿的條件 top maxsize 1 2.有資料序列1 2 3一次存入乙個棧stack中,則出棧順序可...
棧 順序棧的基本操作
棧也是一種線性表,但是棧是一種操作受限的線性表,因此也可稱它為限定性的資料機構。棧是限定僅在表尾進行插入或刪除操作的線性表。棧的表尾為它的棧頂,表頭為它的棧底。先進入棧的後出棧,後進入棧的先出棧。所以,棧被稱為後進先出的線性表。順序棧基本操作的實現 include include define in...
棧 順序棧的基本操作
棧 作為一種限定性線性表,是將線性表的插入和刪除操作限制為僅在表的一端進行,通常將表中允許插入 刪除操作的一端稱為棧頂。下面給出順序棧的 演示。順序棧 採用順序儲存結構實現的棧,即利用一組位址連續的儲存單元依次存放自棧底的資料元素,同時由於棧操作的特殊性,還必須附設乙個位置指標top來動態的指示 棧...