學習心得|數據結構

對數據結構的一些心得

學習了一段時間的數據結構,看了一些書,發現數據結構總會和算法連在一起,感覺有點奇怪,數據結構爲什麼不獨立教呢?,爲什麼書名大都是數據結構和算法呢?數據結構和算法是什麼關係呢?

應用起來才感覺到數據結構就好像算法一樣,只不過是一種解決數據存儲問題的算法;而數據又往往避免不了查找和排序操作,需要學習查找和排序算法,兩者結合才能基本滿足對數據的操作。
———————————————————————————

數據結構說白了就是要把人腦中抽象的數據存儲方式(樹,圖等)用電腦中具體物理內存實現。

所以在代碼實現時候要明白抽象的儲存方式是怎麼和內存建立聯繫的。

畢竟內存地址是呈線性排列下來的,並沒有“樹”所需要的分支,也沒有一種額外儲存網的"權"的空間,因此我們需要指針和結構體等工具來建立這種抽象聯繫。

指針在數據結構中充當一種工具,讓儲存在存儲器不同位置的數據建立聯繫,比如圖的邊。

結構體則拓寬了結點的存儲空間以便放入更多信息,比如權或指針。

在這裏插入圖片描述雖然數據本質上還是存儲在線性的物理內存中,但在邏輯上和我們腦中卻是一個相對抽象的樹或圖。

———————————————————————————
從數組到鏈表,是物理內存地址的連續到不連續;
從鏈表到樹到圖是對應關係的增加
(從一對一一對多 再到 多對多);
而隊列,棧,權就是人爲地加條件,以滿足某種特定的需求。
———————————————————————————
要熟悉一種數據結構或算法,最好就是先明白原理,然後反覆敲代碼,否則就會有種似懂非懂,隔了層紗的感覺。

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