點擊上方,選擇“置頂/星標公眾號”
大家好,我是麥鴿。
在單片機和嵌入式的相關開發的工作中,數據結構到底重要不重要呢?
我認為這很重要。
這里舉個例子,在嵌入式系統中,我們經常會處理傳感器或者一些設備上的數據,比如ADC,加速度傳感器/陀螺儀傳感器,或者記錄數據的設備。
通常我們可以通過UART,I2C,SPI等接口將數據讀取到單片機內部。很多情況下,數據的更新頻率很高,往往是微妙級別,或者是毫秒級別的。
這時候,我們就要將這些數據保存到數據結構中,如何高效的讀寫數據是一個問題,而在C語言中已經有相應的機制來保存數據。
比如C語言中常用的數組,結構體,聯合體都是一種數據結構,再復雜一點的像隊列,堆棧,鏈表,二叉樹等等。
在何種情況下使用何種數據結構?這是個問題。
并且在一些開源項目的源碼里,數據結構是很常見的,下面是FreeRTOS源碼里的鏈表初始化的函數:

如何能掌握數據結構,能夠輕松地讀懂這些代碼,這也是一個問題。
我以前是電子相關專業的,當初的數據結構是自學的,自認為也是半桶睡,因為當初學完C語言之后,并沒有開設數據結構這門課程,大部分情況都是自己看視頻,然后敲代碼練習,才學會的。
數據結構比較抽象,所以,我們在寫代碼的時候會拿一支筆,畫一下具體的實現過程,理清思路,然后再配合代碼練習,就會好很多。
這里推薦一下郝斌老師的數據結構視頻,感覺挺好,不妨試試。

因為數據結構在應用的時候,要基于某種語言去實現,比如C語言,所以我們C語言就要掌握的比較扎實,如果感覺哪個知識點掌握不到位,就要查漏補缺,重點練習。
下面推薦一個學習網站,我感覺挺不錯的:https://visualgo.net/zh
這里有基本的一些數據結構的可視化練習,具體如下所示;




文章不長,希望能幫到你,后臺回復【數據結構】,可以領取資料。

??兄弟們!一個人單打獨斗確實能沖得挺快,但要想走得更遠、更穩,還得靠一群志同道合的伙伴啊!
?? 麥鴿的知識星球現在已經聚集了一波人,大家都在這里互相學習、共同進步。
如果你也想找個靠譜的學習圈子,趕緊 戳鏈接 ??加入我們吧!
在這里,你能讀到星球專欄的干貨,優質教程,練手項目,隨時向麥鴿提問,還能幫你定制學習計劃。別猶豫,兄弟,一起沖!??
往期推薦
嵌入式開發常用的Ring Buffer,今天一篇文章講透它
推薦一個開源大功率伺服驅動器項目
為什么代碼總在"不可能出錯"的地方崩潰?嵌入式程序測試黃金法則
嵌入式C語言防御性編程必知的15個黃金法則,讓你的代碼穩如磐石!