數據結構都是相通的么?
回答是肯定的。
數據結構重點關注兩個方面:一個是數據的組織形式(按照ADT來理解)和功能接口設計,另一個就是數據的物理存取。
數據結構必然需要通過一門語言作為表達工具。對于不同的語言,在基本類型的特點和操作方面會有差異,比如你在用C指針的時候,到Java就會相應地使用引用;比如你用C可以malloc動態分配內存,而到Java這部分你就需要靠Java提供數組(由Jvm來分配內存)。掌握了數據結構的核心思想,在不同語言之間切換是無壓力的。
對于數據結構的存儲,首先不要在腦海中將它固化為內存存儲(書本上知識為方便講述數據結構本身的知識而直接使用語言提供的各種內實現)。一般說來,內存不是瓶頸的時候,我們可以為了性能盡量使用內存,大多數語言在基礎類庫方面都有常用數據結構(如棧、隊列)基于內存存儲的實現。而在需要持久化的時候選擇合適的策略來保障數據安全性。
一般在處理業務級別時,載入內存的是部分已經篩選過的數據(比如https://www.b5b6.com/shujuku/分頁查詢),這部分數據基本都不會涉及大量的內存使用。但是一旦你要面對大量數據處理或者高并發且需要考慮內存限制時,就需要配合大容量的磁盤和內存一起來做數據結構的存取設計。這一點,你只要聯系https://www.b5b6.com/shujuku/的索引的設計就能明白。
總結數據結構的核心還是數據結構的思想,到了具體使用的時候,會根據實際情況在結構(比如是數據內嵌到結構中,還是結構內嵌到數據中)和存儲方面(同時影響接口的具體實現)做調整。所以,如果你發現換門語言就有點困難就說明掌握還不夠,掌握數據結構的重點在于多用多思考多總結。