1. 程式人生 > >最新玩轉資料結構從入門到進階

最新玩轉資料結構從入門到進階

第1章 歡迎學習《玩轉資料結構》
歡迎大家學習《玩轉資料結構》課程。在這個課程中,我們將從底層實現諸多資料結構,從簡單,到複雜,並且探索他們的應用。在這一章,我們將來看一看資料結構的具體作用,學習資料結構的誤區,學習這個課程的注意事項,和課程環境的基本搭建:) ...

第2章 不要小瞧陣列
陣列,看似是最簡單的資料結構,但是,大多數語言為我們提供的都是靜態陣列,如何封裝一個屬於我們自己的動態陣列,將是這一章討論的重點。同時,我們也將探討泛型,複雜度分析,乃至複雜度的震盪,等相關高階話題

第3章 棧和佇列
棧和佇列都是極其簡單的線性資料結構,其中的操作甚至都是陣列操作的子集,但卻在電腦科學中有著極其重要的應用。在這一章,我們就來探索棧和佇列的奧祕。我們將看到使用底層資料結構搭建上層資料結構的過程,同時對於佇列,我們也將改進底層結構,完成迴圈佇列的實現。...



第4章 最基礎的動態資料結構:連結串列
在這一章,我們將接觸第一個動態資料結構:連結串列。我們將通過對連結串列的底層實現,更深入的理解對引用(或者是指標)的操作。同時,我們也將利用連結串列,實現棧和佇列,並基於不同的底層實現,進行效能的比較。

第5章 連結串列和遞迴
很多同學都會忽視連結串列和遞迴之間千絲萬縷的聯絡。其實,連結串列也擁有著天然的遞迴結構。我們在這一章,就將通過連結串列這種簡單的資料結構,一點一點為大家揭開遞迴,這個在計算機的世界中最為重要的邏輯構成方式的神祕面紗!...

第6章 二分搜尋樹
二分搜尋樹將是我們接觸的第一個非線性資料結構。在這一章,我們將通過對二分搜尋樹的底層實現,瞭解對樹結構的基本操作方式。同時,由於樹結構天然的遞迴性質,我們將在這一章,實現諸多遞迴演算法,進一步理解遞迴的奧妙。...


第7章 集合和對映
在這一章,我們將綜合之前學習的陣列,連結串列和二分搜尋樹,探索更加高層的資料結構應用:集合(Set)和對映(Map)。通過這一章的學習,我們將對二分搜尋樹的複雜度分析,有更加感性的認識,同時看到二分搜尋樹的巨大優勢,以及相應的侷限性。...

第8章 優先佇列和堆
在這一章,我們將探索一種特殊的樹結構——堆。學習完這一章,同學們將對堆的相關操作有深入的認識,甚至達到白板程式設計的程度。同時,我們也將拓寬對佇列的認識,理解什麼是廣義佇列,什麼是優先佇列。

第9章 線段樹
線段樹是一種特殊的樹結構。這種資料結構主要用於解決“線段”或者是“區間”這種特殊的資料,是演算法競賽中的常客。在這一章,我們將從底層實現屬於我們自己的線段樹,完成線段樹的建立,查詢,更新三個操作,並且通過實際比較,看到線段樹解決“線段”相關問題的巨大優勢。 ...



第10章 Trie
Trie將是我們學習的第一個,也是唯一一個多叉樹結構。Trie用於高效的處理字串相關的查詢問題,我們將看到,使用Trie,對字串的查詢效率,將和字串的多少無關!這樣的效率提升,將絕對震驚你的老闆和同事!

第11章 並查集
並查集是一種奇怪的樹結構。在並查集中,不是父親指向孩子,而是孩子指向父親。這樣的一種奇怪結構,卻能出奇快的解決集合相關的合併和查詢問題。在這一章,我們將連續優化我們的並查集,釋放出並查集的最大能量!

第12章 AVL
我們在這一章將學習最為經典的平衡二叉樹:AVL樹。我們將深入理解AVL樹中的旋轉操作。最後,我們也將看到,使用我們自己實現的AVL樹,在極端情況下,相較普通的二分搜尋樹,效能巨大的提升。

第13章 紅黑樹
沒有紅黑樹,可能就沒有資料庫到今天的發展。紅黑樹更是所有語言中樹結構的首選底層實現。在這一章,我們將從2-3樹入手,帶領大家理解2-3樹和紅黑樹的等價性,進而深入理解紅黑樹的各項操作。大家將看到,紅黑樹雖然複雜,但有規律的去理解,也能輕鬆拿下!...

第14章 雜湊表
在資料結構的世界裡,雜湊表可謂影響深遠。雜湊的應用早就遠遠超越了資料儲存,在安全領域發揮著重要的作用。就連”區塊鏈“這種魔法黑科技,都離不開雜湊的影子。在這一章,我們將具體的看一看,到底什麼是雜湊表,雜湊表比起之前學習的資料結構,到底有怎樣的優勢。...

第15章 結尾語
通過這個課程的學習,同學們已經掌握了相當多的資料結構。可以說是資料結構領域的”小牛“了。希望通過這個課程的學習,大家更掌握了研究資料結構的方法,通過自己的努力,向資料結構領域的”大神“進軍。大家加油!

 

 

下載地址:百度網盤