棧和佇列入門

2021-09-08 06:44:07 字數 1137 閱讀 5242

棧是只能在某一端插入和刪除的特殊線性表。

用桶堆積物品,先堆進來的壓在底下,隨後一件一件往上堆。取走時,只能從上面一件一件取。堆和取都在頂部進行,底部一般是不動的。

棧就是一種類似桶堆積物品的資料結構,進行刪除和插入的一端稱棧頂,另一端稱棧底。插入一般稱為進棧(push),刪除則稱為退棧(pop)。 棧也稱為後進先出表(lifo表)。

include//標頭檔案

stack《資料型別》變數名//定義棧

如:stacka;

a.push(變數)//進棧

a.top()//返回棧頂元素

a,pop()//出棧

a.size()//返回棧中元素個數

a.empty()//如果棧為空返回true,否則返回false

佇列佇列是限定在一端進行插入,另一端進行刪除特殊線性表。就像排隊買東西,排在前面的人買完東西後離開隊伍(刪除),而後來的人總是排在隊伍未尾(插入)。通常把佇列的刪除和插入分別稱為出隊和入隊。允許出隊的一端稱為隊頭,允許入隊的一端稱為隊尾。所有需要進隊的資料項,只能從隊尾進入,佇列中的資料項只能從隊頭離去。由於總是先入隊的元素先出隊(先排隊的人先買完東西),這種表也稱為先進先出(fifo)表。

佇列基本操作如下:

#include//標頭檔案

queue《資料型別》變數名//定義佇列

如:queuea

a.empty()//如果隊列為空返回true,否則返回false

a.size()//返回佇列中元素的個數

a.pop()// 刪除佇列首元素但不返回其值

a.front()//返回隊首元素的值,但不刪除該元素

a.push()//在隊尾壓入新元素

a.back()//返回佇列尾元素的值,但不刪除該元素

posted @

2016-06-25 17:51

惑&葬 閱讀(

...)

編輯收藏

單調棧以及單調佇列入門

一 單調棧 單調棧是指乙個棧內部的元素具有嚴格單調性的一種資料結構,分為單調遞增棧和單調遞減棧。其具有以下兩個性質 1,滿足棧底到棧頂的元素具有嚴格單調性。2,滿足棧的先進後出特性,越靠近棧頂的元素越後出棧。元素進棧過程 對於乙個單調遞增棧來說,若當前進棧的元素為a,如果a 棧頂元素,則直接將a進棧...

單調棧與單調佇列入門

特點1 top指向最後乙個數所在位置 特點2 後進先出 特點3 遞增或遞減 例題 poj2796 大意 求乙個區間,這個區間內 所有數的和sum 區間內min 的值 相比其他區間大 輸入 6 3 1 6 4 5 2 輸出 60 3 5問題 求出每個數在哪個區間內最小 區間怎麼求 將這個數 區間總值 ...

單調佇列 入門

今天寫了人生中第乙個單調佇列,激動ing 先看一道單調佇列的入門題 乙個含有n項的數列 n 2000000 求出每一項前面的第m個數到它這個區間內的最小值。先寫出動規方程 f i min j合法 很明顯的,這是乙個n 2的動規,但是,我們可以注意到,數列中有些數無論如何都不會被選到.如 1 2 8 ...