數據結構筆記——概述

數據結構——概述

——2017.12.21

一、線性表:

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

二、樹:

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

三、圖:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章