王道機試指南學習筆記 第五章 資料結構一

2021-10-09 08:41:28 字數 3603 閱讀 4891

5.2 佇列

題目練習

5.3 棧

陣列存在確定其大小的限制,向量——變長陣列。

線性序列容器,使用連續的空間儲存元素,可用下標來訪問,只是大小動態變化!

#include

對尾部:push_back()/pop_back()

insert()/erase()/clear()

end()返回尾元素的後乙個位置!!

牛客網**:

ac的格式稍有點怪 其實沒難度

#include

#include

using namespace std;

vector<

int> nume;

vector<

int> numg;

intsum

(int x)

return sum;

}int

main()

cout<<

"e:"

;for

(int i =

0;i< nume.

size()

;i++

) cout<<

" g:"

;for

(int i =

0;i< numg.

size()

;i++

) cout<

return0;

}

從搜尋的起點開始,不斷地優先訪問當前結點的鄰居

佇列是一種線性的序列結構,其存放的元素按照線性的邏輯次序排列。與陣列/向量相比,佇列只限於邏輯兩端的操作。

「先進先出」規則!

約瑟夫問題資料規模不大時,可直接用迴圈佇列模擬。

可以把模板佇列queue的隊首元素彈出後,再壓入尾部,模擬迴圈佇列效果。

#include

#include

#include

using namespace std;

intmain()

for(

int i =

1;i++i)

while

(!children.

empty()

)if(children.

size()

==1) cout<

front()

<

else cout<

front()

<<

",";

children.

pop();

//第m個彈出}}

return0;

}

牛客網**:

結構體animal 定義了乙個同名建構函式,故可用建構函式來定義結構animal。animal(2,4)表示建立乙個動物,編號2,次序4.

【佇列常用於寬度優先搜尋bfs】

#include

#include

#include

using namespace std;

struct animal

//注意這對象徵性地大括號不能丟};

intmain()

else

else cout<

front()

.number<<

" ";

}else

if(cats.

empty()

) cout<

front()

.number<<

" ";

else

else}}

if(type==1)

}if(type==-1

)}}}

cout<

return0;

}

線性序列結構,禁止操作的盲端為棧底。

「後進先出」lifo規則!

empty()/size() push()/pop() top()獲取棧頂

1) 逆序輸出

特點:後進先出+問題規模不確定(容器大小不確定)

牛客網**:

本題數字個數已知,所以也可以用陣列處理;

不過 棧 可以不考慮個數

int的最大值2的31次方-1 = 214748364,若大於這個則需要用64位整型long long來表示

long long的輸入格式:

在win系統下scanf("%i64d",)

而linux下scanf("%lld",) 一般用這個

cin無區別

#include

#include

#include

using namespace std;

stack<

long

long

> mystack;

//定義乙個棧

intmain()

while

(!mystack.

empty()

)printf

("\n");

}return0;

}

2) 括號匹配檢查巢狀表示式中括號是否完全匹配

1)先壓入左括號,等待後續右括號的匹配;

2)遇到右括號,若此時棧非空,則棧頂左括號與當前右括號匹配;若為空,則右括號匹配失敗;

3)當整個字串從左到右遍歷完後,若棧非空,則左括號匹配失敗。

}3) 表示式求值不同運算子優先順序不同,等必要的資訊來到後,才能確定運算子是否可以執行。

python第五章 Python學習(第五章)

記錄所有的名片字典 card list defshow menu 顯示資訊 print 50 print 歡迎使用 名片管理系統 v1.0 print print 1.新增名片 print 2.顯示全部 print 3.搜尋名片 print print 0.退出系統 print 50 defnew ...

彙編學習筆記 第五章

從鍵盤獲取乙個位元組 輸出乙個位元組 輸出字串 mov dx,offset lable mov ah,09h int 21h cmp的詳細解釋 cf標誌位 無符號數 of標誌位 帶符號數 單標誌條件轉移指令 無符號數條件轉移指令 帶符號數條件轉移指令 cx暫存器條件轉移指令 of 0 的情況比較方便...

python學習筆記第五章

1.物件是屬性和方法的集合。同樣也有繼承機制。init 就是python的建構函式。變數私有化是在變數前加上 繼承機制 class cat def hello self print i m a cat class dog cat def eat self print i eat bone kitty...