資料結構筆記——概述

空曠在遠方發表於2018-12-15

資料結構——概述

——2017.12.21

一、線性表:

這個是為了解決單線儲存而出現的,陣列就是最簡單粗暴的儲存方法。就是直接拉出一大塊資料存在那裡。陣列的快速存取其實只是一個副作用,因為所有的資料都在一起,可以直接算出來資料的地址。連結串列則是為了解決可以無線增長的需求的。因為找不到一大塊可以連續的存入資料,甚至也不知道程式可能使用的資料總量,所以就沒辦法劃分一塊資料來使用,劃小了不夠用,劃大了浪費。所以必須想辦法解決問題。最後採用的方法就是從入口開始,每一個資料塊不僅僅有資料,還會有指向下一個資料塊的線索,用來尋找下一個資料。這就是連結串列。所謂的雙向連結串列,只是加了一個向前的線索的連結串列。佇列,棧,都是線性表的特殊形態。進行了操作上的限制。

二、樹:

樹是為了解決單一入口下的非線性關聯性的資料儲存或者排序這樣的功能而來的。
最常見的應用是程式設計時候的map,就是利用了二叉樹的可排序和可以快速插入並且保持序列完整的特性來構建鍵值資料對,來實現資料的插入增加以及快速查詢的能力的。
還有做語法解析,文書處理等等很多場景也會用到樹。

三、圖:

圖其實就是把線性表進一步擴充套件,每個節點會有不止一個前置和字尾節點,而且前置和字尾的概念也不再明晰,變成了關聯節點。具體的應用主要是一些特殊的演算法和圖形學上的一些使用。總之資料結構的前期學習要重理解。以倒推的方式,搞清楚每種資料結構產生的目標。多畫畫圖,思考一下,理解透徹以後。再去做練習題會事半功倍。

相關文章