ACM學習歷程18 stack堆疊容器

2021-07-22 03:34:04 字數 979 閱讀 8197

stack堆疊容器是一種實現了先進後出的線性表,它的插入和刪除操作只能在棧頂實現。前面的博文中已經說過了,容器介面卡包括:

queue

、stack

、priority_queue

這些介面卡都是包裝了vector、

list

、deque

中某個順序容器的包裝器,將一些基礎容器轉換成自己的容器。值得注意的是,介面卡沒有提供迭代器,不能同時插入和刪除多個元素。使用

stack

前需要引入

標頭檔案。

(一)stack堆疊容器物件的建立:

stack《型別

>

物件:stacks;

(二)stack常用的操作:

empty() 堆疊為空則返回真;

pop() 移除棧頂元素;

push() 在棧頂增加元素;

size() 返回棧中元素數目;

top() 返回棧頂元素。

#include#includeusing namespace std;

int main()

//原序佇列輸出

outque.clear();

for(i=1;i<=n;i++)

//清空棧

while(!sta.empty())

//flag標誌,為1時可以正確出站,為0不可以

int flag=1;

while(!inque.empty())

else

else if(sta.top()

#include#include#includeusing namespace std;

int main()

{ int n;

cin>>n;

while(n--)

{ string s;

cin>>s;

stacks;

s.push('#');

for(int i = 0; i

ACM學習歷程8 Vector應用

vectors 包含著一系列連續儲存的元素 其行為和陣列類似。訪問 vector 中的任意元素或從末尾新增元素都可以在常量級時間複雜度內完成,而查詢特定值的元素所處的位置或是在 vector 中插入元素則是線性時間複雜度。應用舉例一 輸入資料 含有不多於50 個的正整數n 0 n 46 輸出數 對於...

ACM學習歷程29 搜尋演算法

搜尋演算法是利用計算機的高效能來有目的地窮舉乙個問題的部分或所有的可能情況,從而求出問題的解的一種方法。搜尋過程實際上是根據初始條件和擴充套件規則構造一棵解答樹並尋找符合目標狀態的節點的過程。涉及到的概念包括 狀態 狀態轉移 搜尋樹 狀態空間 可行解 最優解。一 相關概念 狀態 對問題以及事物狀態在...

Mysql學習歷程(18) 觸發器

觸發器 trigger 事先為某張表繫結好一段 當表中某些內容發生改變的時候 增刪改 系統會自動觸發 執行 事件型別 增刪改 insert,delete,update 觸發事件 before,after 觸發物件 表中每一條記錄 最多一張錶能有6個觸發器 建立觸發器 mysql中沒有大括號,都是用對...