資料結構2 1棧

2021-10-17 04:26:31 字數 1735 閱讀 1960

stl 棧

本文是介紹關於棧的基礎知識,以及其stl 棧的使用。

棧是一種基本的資料結構,滿足先進後出的基本原則(filo),該資料結構可以看作向井中放物品與取物品。

如下圖:

棧的模型可以通過多種途徑實現。較為常見的是陣列模擬棧,也可以以鍊錶模擬棧。

陣列模擬棧:

棧的結構需要儲存空間與棧頂的位置。

int stack[maxn]

;//開闢相應空間以儲存資料

int*pos = stack;

//指向棧頂的指標

ps:這裡也可以直接使用陣列下標來作為棧頂位置的標記。

鍊錶模擬棧:

與陣列相同,但是鍊錶需要額外的標記鍊錶的起點。

struct node

;node *no1 =

new node;

//鍊錶的起點

node *pos = no1;

//指向棧頂的指標

功能

函式名返回值型別

判斷棧是否為空

empty()

bool

棧內元素數量

size()

int元素進棧

push(int n)

void

棧頂元素出棧

pop()

void

顯示棧頂元素

top()

int注:以下**均使用陣列模擬方法

bool

empty()

int

size()

void

push

(int n)

void

pop(

)

void

top(

)

c++ stl中包含了棧的庫,可以直接使用。底層預設運用雙向佇列(deque)。

使用時需要包含相關標頭檔案

#include

stl 棧的部分公有函式

功能函式名

返回值型別

判斷棧是否為空

empty()

bool

棧內元素數量

size()

int元素進棧

push(template t)

void

棧頂元素出棧

pop()

void

顯示棧頂元素

top()

template

stl 棧的部分原始碼

bool

empty()

const

size_type

size()

const

reference

top()

const_reference

top()

const

void

push

(const value_type& __x)

void

pop(

)

資料結構之棧(2 1)應用 括號匹配

編寫乙個演算法,判斷鍵盤輸入的表示式是否配對。假設括號只包含 1 所謂括號配對,就是 2 輸入的字串中,可能包含 也可能沒有 數字,及其他符號。3 每當掃瞄字串元素 現 需要進行括號匹配檢查。檢查方式為 看最近出現的 而用什麼儲存 呢?棧是選擇之一。那棧的儲存狀態是,要麼有 要麼為空。4 根據以上分...

資料結構上機2 1

include include define maxsize 50 typedef char elemtype typedef struct sqlist 尾插法線性表 void initlist sqlist l 初始化線性表 void destroylist sqlist l 銷毀線性表 boo...

資料結構 棧 棧

可以把棧想像成乙個桶 進棧 就是把和桶口一樣大的燒餅往桶裡面扔 出棧 就是把燒餅拿出來 特點 先進後出。先扔進去的燒餅最後才能拿出來,最後扔進去的燒餅,第乙個拿出來 剛開始top 1 top 1 然後把進棧的元素賦值給data top 入棧操作 void push stack s,int x els...