資料結構與算法系列 目錄
最近抽空整理了"資料結構和演算法"的相關文章。在整理過程中,對於每種資料結構和演算法分別給出"C"、"C++"和"Java"這三種語言的實現;實現語言雖不同,但原理如出一轍。因此,讀者在瞭解和學習的過程中,擇其一即可!
下面是整理資料資料和演算法的目錄表,對於每一種按照C/C++/Java進行了劃分,方便查閱。若文章有錯誤或紕漏,請不吝指正。謝謝!
相關推薦
資料結構與算法系列 目錄(轉)
轉載地址:https ://blog.csdn.net/l_215851356/article/details/77659462 最近抽空整理了 “資料結構和演算法” 的相關文章在整理過程中,對於每種資料結構和演算法分別給出 “C”, “C ++” 和 “Java” 的這三種語言
資料結構與算法系列 目錄
最近抽空整理了"資料結構和演算法"的相關文章。在整理過程中,對於每種資料結構和演算法分別給出"C"、"C++"和"Java"這三種語言的實現;實現語言雖不同,但原理如出一轍。因此,讀者在瞭解和學習的過程中,擇其一即可! 下面是整理資料資料和演算法的目錄表,對於每一種
【轉載】數據結構與算法系列 目錄
c語言 rim 二項堆 二叉堆 實現 大神 劃分 back 二叉查找樹 內容轉載自大神skywang12345,鏈接為http://www.cnblogs.com/skywang12345/p/3603935.html。 最近抽空整理了"數據結構和算法"的相關文章。在整
看圖輕鬆理解資料結構與算法系列(Radix樹)
前言 推出一個新系列,《看圖輕鬆理解資料結構和演算法》,主要使用圖片來描述常見的資料結構和演算法,輕鬆閱讀並理解掌握。本系列包括各種堆、各種佇列、各種列表、各種樹、各種圖、各種排序等等幾十篇的樣子。 Radix樹 Radix樹,即基數樹,也稱壓縮字首樹,是一種提供key-value儲存查詢的資料結構。與
資料結構與算法系列1--簡介
為什麼要學習資料結構和演算法? 1.直接好處是能夠有寫出效能更優的程式碼 2.演算法,是一種解決問題的思路和方法,有機會應用到生活和事業的其他方面。 3.長期來看,大腦思考能力是個人最重要的核心競爭力,而演算法是為數不多的能夠有效訓練大腦思考能力的途徑之一。 什麼是資料結構?什麼是演
資料結構與算法系列6--棧
什麼是棧? 1.後進者先出,先進者後出,這就是典型的“棧”結構。 2.從棧的操作特性來看,是一種“操作受限”的線性表,只允許在端插入和刪除資料。 什麼時候使用? 當某個資料集合只涉及在某端插入和刪除資料,且滿足後進者先出,先進者後出的操作特性時,我們應該首選棧這種資料結構。
資料結構與算法系列5--連結串列
什麼是連結串列? 1.和陣列一樣,連結串列也是一種線性表。 2.從記憶體結構來看,連結串列的記憶體結構是不連續的記憶體空間,是將一組零散的記憶體塊串聯起來,從而進行資料儲存的資料結構。 3.連結串列中的每一個記憶體塊被稱為節點Node。節點除了儲存資料外,還需記錄鏈上下一個節點的地址,即
資料結構與算法系列4--陣列
什麼是陣列? 陣列(Array)是一種線性表資料結構。它用一組連續的記憶體空間,來儲存一組具有相同型別的資料。陣列的一個最大特性就是支援下標隨機訪問陣列元素。 補充: 線性表就是資料排成像一條線一樣的結構。每個線性表上的資料最多隻有前和後兩個方向。其實除了陣列,連結串列、佇列、棧等也是線
資料結構與算法系列7--佇列
什麼是佇列? 1.先進者先出,這就是典型的“佇列”結構。 2.支援兩個操作:入隊enqueue(),放一個數據到隊尾;出隊dequeue(),從隊頭取一個元素。所以,和棧一樣,佇列也是一種操作受限的線性表。 佇列的應用也非常廣泛,特別是一些具有某些額外特性的佇列,比如迴圈佇列、阻塞佇列、
02-看圖理解資料結構與算法系列(單向連結串列)
單向連結串列 單向連結串列屬於連結串列的一種,也叫單鏈表,單向即是說它的連結方向是單向的,它由若干個節點組成,每個節點都包含下一個節點的指標。 單鏈表特點 建立單鏈表時無需指定連結串列的長度,這個比起陣列結構更加有優勢,而陣列縱使實現成動態陣列也是需要指定一個更大的陣
01-看圖理解資料結構與算法系列(陣列)
陣列 陣列是最熟悉也是最基礎的一種結構了,有限個相同資料型別的元素按順序排列的集合為陣列。陣列的資料是連續的,有上界下界,在其中的元素都有屬於自己的索引值,即下標,通過這些下標就能定位到陣列值。 根據維度的不同可以將陣列分為一維陣列、二維陣列、三維陣列等等,以此類推。 一維陣列
07-看圖理解資料結構與算法系列(選擇排序)
選擇排序 選擇排序是一種很簡單直觀的排序演算法,主要思想就是每次從待排序的元素中選擇出最大或最小的那個元素,然後將其放至已排序序列的末尾,直到全部待排序序列都排序完畢。 排序要點 初始狀態時,待排序序列為a1,a2,...an,已排序序列為空。 第一趟排序,從
06-看圖理解資料結構與算法系列(AVL樹)
AVL樹 AVL樹,也稱平衡二叉搜尋樹,AVL是其發明者姓名簡寫。AVL樹屬於樹的一種,而且它也是一棵二叉搜尋樹,不同的是他通過一定機制能保證二叉搜尋樹的平衡,平衡的二叉搜尋樹的查詢效率更高。 AVL樹特點 AVL樹是一棵二叉搜尋樹。 AVL樹的左右子節點也是
05-看圖理解資料結構與算法系列(基於陣列的棧)
棧 棧是一種線性儲存結構且運算受限的線性表,它的插入和刪除運算操作被限制在表的一端,該端稱為棧頂,而另外一端則稱為棧底。 棧中的資料以後進先出(Last In First Out 即LIFO)方式進出棧。 棧的實現 棧的實現方式有多種方式,主要是使用不同的結構來儲存棧元素,比如使用陣列、
12-看圖理解資料結構與算法系列(氣泡排序)
氣泡排序 氣泡排序是一種很簡單的排序演算法,主要思想就是不斷走訪待排序序列,每次只比較兩個相鄰元素,如果這倆元素順序不符合要求則對換它們,不斷重複知道沒有相鄰元素需要對換。在不斷走訪比較過程中,越大的元素經過交換會慢慢走到數列頂端,所以看起來它就像氣泡一樣不斷往上冒,於是就叫冒泡。
11-看圖理解資料結構與算法系列(B樹的刪除)
刪除操作 刪除操作比較複雜,主要是因為刪除的項可能在葉子節點上也可能在非葉子節點上,而且刪除後可能導致不符合B樹的規定,這裡暫且稱之為導致B樹不平衡,於是要進行一些合併、左旋、右旋等操作,使之符合B樹的規定(即讓B樹平衡)。另外,如果是刪除非葉子節點項需要先找到中序前驅來替換。 情況
10-看圖理解資料結構與算法系列(B+樹)
B+樹 B+樹是B樹的一種變體,也屬於平衡多路查詢樹,大體結構與B樹相同,包含根節點、內部節點和葉子節點。多用於資料庫和作業系統的檔案系統中,由於B+樹內部節點不儲存資料,所以能在記憶體中存放更多索引,增加快取命中率。另外因為葉子節點相連遍歷操作很方便,而且資料也具有順序性,便於區間查詢。
17-看圖理解資料結構與算法系列(NoSQL儲存-LSM樹)
關於LSM樹 LSM樹,即日誌結構合併樹(Log-Structured Merge-Tree)。其實它並不屬於一個具體的資料結構,它更多是一種資料結構的設計思想。大多NoSQL資料庫核心思想都是基於LSM來做的,只是具體的實現不同。所以本來不打算列入該系列,但是有朋友留言了好幾次讓我講LS
16-看圖理解資料結構與算法系列(快速排序)
快速排序 快速排序由C.A.R.Hoare在1962年提出,是氣泡排序的一種改進。其基本思想為:通過一趟排序將待排序資料分割成獨立的兩部分,其中一部分的所有值都比另一部分的所有值都小,然後再對分割的兩部分分別進行快速排序,整個過程可以遞迴進行,最終所有資料變為有序序列。 排序要點
資料結構與算法系列18--紅黑樹
紅黑樹是平衡二叉查詢樹的一種,上一節我們已經講過二叉查詢樹的定義,那什麼是平衡二叉查詢樹呢? 什麼是平衡二叉查詢樹 定義: 平衡二叉查詢樹嚴格的定義是:二叉樹中任意一個節點的左右子樹的高度相差不能大於+1。從這個定義來看,的完全二叉樹、滿二叉樹其實都是平衡二叉樹,但是非完全二叉樹也有