棧是乙個先進後出的容器,需要使用#include
標頭檔案
stack <
int> a ;
//定義乙個儲存int 型別的棧
a.push_back(1
);//將 1 壓入棧中
a.pop()
;// 將棧的最後乙個元素彈出(刪除)
a.empty()
;//判斷棧是否為空,如果是空的返回1 否則返回0
a.size()
;//返回棧的大小
a.top()
;//返回棧頂元素(就是棧的最後乙個元素)
a.front()
;// 返回棧的第乙個元素
a[i]
//返回棧中第i個元素
佇列是的特點是先進先出需要使用標頭檔案#include
queue <
int> a ;
//定義乙個儲存int 型別的佇列
a.push(1
);//將 1 壓入佇列中
a.pop()
;// 將佇列的第乙個元素彈出
a.empty()
;//判斷棧是否為空,如果是空的返回1 否則返回0
a.top()
;//返回佇列的第乙個元素
a.clear()
;//將佇列清空
既然也是佇列,那麼使用方式與佇列基本一致,但是在讀入的過程中,自動將佇列中的元素進行了排序
priority_queue <
int,vector<
int>
,greater<
int>
> a;
//公升序佇列
priority_queue <
int,vector<
int>
,less<
int>
>a;
//降序佇列
同理,基本和佇列是同乙個方法
deque <
int> a ;
a.push_front()
;//隊頭插入元素
a.push_back()
;//隊尾插入元素
a.pop_front()
;//刪除對頭元素
a.pop_back()
;//刪除隊尾元素
包含於#include
標頭檔案的下方
vector<
int> a,b;
a.push_back
(i);
//尾部加入新的元素
a.pop_back()
;//刪除最後乙個元素
a.size()
;//返回容器的大小
a.swap
(b);
//a與b進行交換
a.clear()
;//清空
a.begin()
;//指向容器的起點
a.end()
;//指向容器的結束點
set就是集合,需要用到#include
set 中同一元素不會出現第二次
set <
int> a ;
a.insert(1
);//新增乙個元素
a.find(3
);//查詢元素3
a.begin()
//返回set容器的第乙個元素
a.end()
//返回set容器的最後乙個元素
a.clear()
//刪除set容器中的所有的元素
a.empty()
//判斷set容器是否為空
a.size()
//返回當前set容器中的元素個數
a.rbegin //返回的值和end()相同
a.rend()
//返回的值和rbegin()相同
lower_bound(2
)//返回第乙個大於等於2的位址
upper_bound(2
)//返回最後乙個大於等於2的位址
學習筆記 資料結構
一 常用的資料結構 1 線性資料結構 元素之間一般存在元素之間存在一對一關係,是最常用的一類資料結構,典型的有 陣列 棧 佇列和線性表 2 樹形結構 結點間具有層次關係,每一層的乙個結點能且只能和上一層的乙個結點相關,但同時可以和下一層的多個結點相關,稱為 一對多 關係,常見型別有 樹 堆 3 圖形...
學習筆記 資料結構 堆結構
堆結構 實質是陣列 特點 以陣列的形式去儲存完全二叉樹 原理 以前序遍歷完全二叉樹,得出結點的前序序列,以陣列的形式儲存該序列。查詢父,子結點通過陣列下標id間的轉換關係實現。優點 節省儲存空間,查詢效率高 缺點 1 只能表示完全二叉樹 更廣泛的可以說是完全n叉樹 2 對樹的插入,刪除操作執行效率低...
筆記 資料結構
解釋經典例題 計算給定多項式在給定點x處的值。f x a0 a1 x a n 1 x n 1 a n x n 方法一 double num int n,double array,double x 改進方法 double num int n,double array,double x clock 捕捉...