學習筆記 資料結構 線性結構和STL

2021-10-24 01:25:51 字數 2140 閱讀 2186

棧是乙個先進後出的容器,需要使用#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 捕捉...