CSP S 2019初賽知識點總結之基本資料結構

2021-09-28 19:05:23 字數 946 閱讀 8613

是一種「先進後出」的線性資料結構。棧只有一端能夠進出元素,稱這一端為棧頂,另一端為棧底。新增或刪除棧中元素時,我們只能將其插入到棧頂(進棧),或者把棧頂元素從棧中取出(出棧)。

stl中的棧的基本操作

empty() 堆疊為空則返回真

pop() 移除棧頂元素

push() 在棧頂增加元素

size() 返回棧中元素數目

top() 返回棧頂元素

來自這裡

鍊錶每個元素都是乙個物件,每個物件按線性順序排列。

雙向鍊錶: 每個元素都是乙個物件,每個物件有關鍵字key和兩個指標: prev和next。 假設x為鍊錶的乙個元素,x.next 指向鍊錶中的後繼元素,x.prev 指向它在鍊錶的前面元素,如果x.prev=nil,則x是鍊錶中的第乙個元素(鍊錶的頭),x.next=nil,則x是鍊錶中的最後乙個元素(鍊錶的尾),屬性l.head 指向鍊錶的第乙個元素,如果l.head=nil,則鍊錶為空。

單向鍊錶: 則省略每個元素的prev指標。

迴圈鍊錶: 是表頭元素的prev指標執行表尾元素,表尾元素的next指標指向表頭元素。

是一種「先進先出」的線性資料結構,一般來講元素從右端進入佇列(入隊),從左端離開佇列(出隊),於是我們稱佇列的左端為隊頭,右端為隊尾。

stl中的基本操作

front(),back() 獲取隊首,隊尾元素,時間複雜度為o(1)

pop() 隊首元素出隊,時間複雜度為o(1)

empty() 檢測queue是否為空,返回bool型別,true為空。

size() 返回queue內元素個數

注:使用front()和back()的時候,必須判斷佇列是否為空,!empty()或size()>0。

迴圈佇列:當head=tail時,隊列為空

2019CSP S初賽知識點彙總

0x01 位運算 0x02 字首和與差分 0x03 二分 0x04 倍增 0x05 排序 0x06 離散化 0x07 高精度 0x11 棧和佇列 0x12 鍊錶 0x13 雜湊表 0x14 並查集 0x15 樹 0x16 二叉堆 0x21 質數 0x22 約數 0x23 擴充套件歐幾里得演算法與線性...

題解 CSP S2019初賽 取石子

取石子 alice和bob兩個人在玩取石子遊戲。他們制定了nn條取石子的規則,第ii條規則為 如果剩餘石子的個數大於等於a i a i 且大於等於b ilb il,那麼他們可以取走b i b i 個石子。他們輪流取石子。如果輪到某個人取石子,而他無法按照任何規則取走石子,那麼他就輸了。一開始石子有m...

NOIP初賽知識點集錦

乙個 32位整型變數佔 4位元組 乙個位元組8位 運算子優先順序表 與位運算結合優先順序 邏輯非 按位反 位移運算 不等號 等號 按位與 按位異或 按位或 邏輯與 邏輯或 常用 除 乘 取餘 加 減。按優先順序從大到小順序 氣泡排序!歸併排序!注意相同的數排序後的不同位置 5 進製的字母表達 h h...