1.1 什麼是數據結構
說到數據結構,我覺得可以拆分成兩個詞,數據和結構。
先來打個比方。
同樣是水,
有的被放進了游泳池,成爲了游泳嬉戲的場所;
有的被放進了杯子,供我們喝水;
我們不可能喝水,不用杯子,用游泳池。
說到底,就四個字:因地制宜???(好像比較恰當,歡迎大家集思廣益)
數據就好比這裏的水,是我們想要使用的東西,對我們有價值的東西;
結構就好比游泳池、杯子,是幫助我們更好的使用數據,能更好更快的完成一些特定操作。
所以,在我看來,其實我們學的是結構,如何去組織數據,讓它能夠完成在特定場景下的一些任務。
1.2 數據與內存讀取
就像上面所說的,我們主要學習的是結構,所以結構會在後面慢慢講解。
這裏主要介紹下,數據及計算機內存中的讀取操作。
還是打個比方,如果把內存比作一個公寓,公寓中的每個房間代表可以存儲一定數量的數據。
就好像單人房、雙人房那樣,每個人是一個數據。
你現在就是超人,如果讓你到指定房間,對其中的住戶進行盤查。
你可以怎麼去排查呢?比如需要排查的是1100房間。
- 你可以進了公寓,慢悠悠的從1001,經過1002,1003…,然後走到1100房間
- 你也可以暴力點,從1001,然後一口氣跳到到1100房間。
計算機也有相應的操作,我們繼續說。
在計算機中,每個數據存放在一塊內存區域中,計算機會給每個內存區域分配一個地址。
我們將內存區域與上述比喻進行一個對照。(圖片修改自極客專欄:《數據結構與算法之美》)
1.3 說下數據操作
想想我們平時需要對數據進行什麼樣的操作,增刪改查,四個字一定不陌生吧。
- 增,添加數據
- 刪,刪除數據
- 改,修改數據
- 查,查找數據
所以說,我們如何學習數據結構呢?
- 知道數據的結構
- 對相應的數據結構完成上面四種操作
- 一點題目,稍微練練手
就可以收功了。
Github地址 歡迎 star 收藏
尋找有趣或更有效率的事、工具和教程