筆記 C 資料結構 集合

2021-10-23 09:12:22 字數 2286 閱讀 4049

雙向鍊錶: linkedlist

公升級版:堆疊+佇列

優點:插入、刪除元素效率較高,

允許插入重複值

缺點:訪問查詢效率較低

返回:船塢

公告牌:雙向鍊錶:(linkedlist)

鍊錶的一種,也叫雙鏈表。

它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。

所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。

泰坦的肩膀

售船商:我來為您介紹一下!

您或許已經擁有了array,arraylist和list,不過它們都有乙個重大的缺陷!

那就是從陣列的中間位置刪除或插入乙個元素需要付出很大的代價

其原因是陣列中處於被刪除元素之後的所有元素都要向陣列的前端移動。

hades:我可以這樣理解嗎?

就是說,乘坐那些船有個死規則,艙位中間不允許有空房間,一旦中間有人搬走,後面所有人必須全部向前挪動乙個房間,這個動作,真是牽一發動全身!

售船商:沒錯,如果不想遵守這個規則,可以,您就要了解下linkedlist了。

linkedlist(底層是由鍊錶實現的)是基於鍊錶的資料結構,

很好的解決了陣列刪除插入效率低的問題,

且不用動態的擴充陣列的長度。

hades心想:

有這等好事?!那我願聞其詳。

售船商:沒有能解決一切問題的船,選什麼船要看你的實際場景。

list是陣列鍊錶

linkedlist是指標鍊錶

選擇list還是linkedlist要看你的使用特點.

陣列鍊錶訪問快,複雜度o(1),但是新增刪除複雜度o(n)

指標鍊錶訪問複雜度是o(n),但是新增刪除很快o(1)

hades:

你這樣說我又暈了,能不能說得簡單點。

售船商:這樣吧,首先我來介紹一下這艘船的優點。

如果要插入乙個元素到鍊錶的中間位置,會非常的快,

原因是,如果插入,

hades:你的意思是,

如果一批船員上船,每個人都已經記住了自己的前面和後面排的分別是誰。

接著,大家隨意分房間,如果有新船員上了船,只需要告知另外兩個隊員這個新來的名字即可。

售船商:對,那麼下面我來介紹一下這艘船的缺點。

鍊錶只能是乙個接著乙個的訪問,

這樣就要用較長的時間來查詢定位位於鍊錶中間的元素。

換言之:我必須挨家挨戶的敲門才能知道裡面到底是誰。

hades:我能這樣理解嗎?

這船安排座次很方便,因為它的規則就是,我永遠只關注自己前後的兩位兄弟,其他一律不管。然而,我要想知道船上都住了誰,那就很麻煩,必須敲開所有兄弟的門,對吧?

售船商:是這樣的。您真是一位睿智的船長!

讓您來銷售這艘船,我想銷量一定超過我了。 屬性

說明count

返回鍊錶中的元素個數

first

返回鍊錶中的第乙個節點

last

返回最後乙個節點

船長:所有船員上船後,我只能看見船首和船尾的兩個人,其餘人都在自己的船艙內,我要通過這兩個人去找到其他人。

方法搜尋元素

contains()

搜尋某元素,找到返回true,否則返回false

find()

從煉表頭開始找某元素,並返回他的節點類,linkedlistnode

findlast()

與find()類似,不同的是從尾部開始搜尋

add方法

新增元素

addbefore()

在某節點的前面

addafter()

在某節點的後面

addfirst()

在鍊錶的頭部

addlast()

在鍊錶的尾部

add 上船:登船演練

remove方法

刪除元素

remove()

刪除指定的乙個匹配對像

removefirst()

刪除鍊錶的頭部元素

removelast()

刪除鍊錶的尾表元素

clear()

清除所有的元素

remove **:登船演練

返回:船塢

旋渦:linkedlist詳解及原始碼學習

旋渦:c#中煉表的用使用linkedlist

旋渦:c#linkedlist鍊錶

筆記 C 資料結構 集合

有序集 sortedset sortedset 物件在插入和刪除元素時維護排序順序,而不會影響效能。優勢 更新排序時無效能損耗 短板 不允許重複元素。不支援更改現有項的排序值,這可能導致意外行為。返回 船塢 公告牌 有序集 sortedset 泰坦的肩膀 system.collections.類 屬...

集合 C 資料結構 集合 set

工作也不想做,部落格也不想寫qaq又是乙個難熬的下午 這個月的leetcode每日一題落下了好多,主要是動態規劃我真不會,看題解基本也想不明白,dp我的一生之敵 x x 這裡要介紹一下順序容器和關聯容器的區別。順序容器就是按照元素在容器中的位置,來進行儲存和訪問,例如vector deque lis...

資料結構 集合

陣列 陣列長度在初始化的時候就已經固定,不適合物件數量未知的情況。下圖為collection 於的部落格 下圖為map 於網路 1.介紹一下list比較常用的集合 有序,值允許重複 1 arraylist 底層實現 private static final object defaultcapacit...